home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume15 / olvwm-3.0 / part08 < prev    next >
Encoding:
Text File  |  1992-02-03  |  55.3 KB  |  1,413 lines

  1. Newsgroups: comp.sources.x
  2. Path: uunet!elroy.jpl.nasa.gov!ames!pasteur!nntp
  3. From: scott.oaks@East.Sun.COM (Scott Oaks)
  4. Subject: v15i154: OpenLook Virtual Window Mgr (3.0), Part08/21
  5. Message-ID: <1992Feb4.135645.7332@pasteur.Berkeley.EDU>
  6. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  7. Nntp-Posting-Host: postgres.berkeley.edu
  8. Organization: University of California, at Berkeley
  9. References: <csx-15i147-olvwm-3.0@uunet.UU.NET>
  10. Date: Tue, 4 Feb 1992 13:56:45 GMT
  11. Approved: dcmartin@msi.com
  12.  
  13. Submitted-by: scott.oaks@East.Sun.COM (Scott Oaks)
  14. Posting-number: Volume 15, Issue 154
  15. Archive-name: olvwm-3.0/part08
  16.  
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  21. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  22. # If this archive is complete, you will see the following message at the end:
  23. #        "End of archive 8 (of 21)."
  24. # Contents:  olwm.man.Z.uu properties.c
  25. # Wrapped by dcmartin@fascet on Tue Jan 14 05:54:43 1992
  26. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  27. if test -f 'olwm.man.Z.uu' -a "${1}" != "-c" ; then 
  28.   echo shar: Will not clobber existing file \"'olwm.man.Z.uu'\"
  29. else
  30. echo shar: Extracting \"'olwm.man.Z.uu'\" \(36913 characters\)
  31. sed "s/^X//" >'olwm.man.Z.uu' <<'END_OF_FILE'
  32. Xbegin 666 olwm.man.Z
  33. XM'YV0+KB(  $$Q8@4;]C<:>.B31@W"6*XB $B!HP7-%[DH#BE21(%+J@@ 9%P
  34. XM8440(FR "%+G3)TY="KFV"@"Y)213H(T*:*@9!L07%J > *EB!,03)X\60+B
  35. XM3AHW9-[< >'039@S9>2 ,/-&ZQ,X9=Q<>1KUSAR;(Z=D<4)T2I(I((605-A&
  36. XMP1:024C"H9/FC9NS74 *!-&CL.'#B!,K7LRXL>/$:$$0*3)EB)0D4*@D>>($
  37. XM)!,H<><N5)!F#H@P3<E*I?KP:M:M74'005,&!!808Z&NGI('9IF?L\/$3-,&
  38. XM#IO?8>F<A1-&CG*29F33'EKT:-*E(,[("0,'39HQ8=B >/GZ*9VL9L*,*>,"
  39. XM!(@DPTW/K@WS(9GF9%+KOJ.@JFNM7&DU11UNG&#:5V'E5I9I<,CQ!AEUC$$'
  40. XM"R"(4<=P,3G%AGAW=+4&" V^ 98<;.21VFRGN9&' EC$0-$<O9W'D& #/6;C
  41. XMC3CF6%AD1&G&&5PN?*9 $V_ !,(8;[11%1DML/%4;2+RY9=I:(1A1VU($GB>
  42. XM',PY9]I3TM4F1QESO%&''.N!<!\=88@1QASLN1<$" H@J:1]33ZIEY1NI+8A
  43. XM25?*(4<:9-3VD(EPTL&7&V=LY2!PTXU9YIEIKMGFF^R!1 5H+L@5E QD*% %
  44. XMG+)UV (9Q(4U1U]6B<?&&V^LT1X(5'CWI7S3%9I>'6S$%"!5?KTQ!AJ/TA?C
  45. XM;W.XH"FGGK8P0ZBCUC;;F&6<FNI?K(8'PJNQSEIK:2" .Y^:9>S:*VQ:(?FJ
  46. XM5C#ZUD:R[GU[5I2LAOOE&6YT549^O[81[+#%@M"NC,DN&Y<40+4@1GXBL, %
  47. XM4"@E+$97A:*94%<*3 '6&&F8D0:9859(\6OJ=C7K%&5(FRN98PRZ5[UO1#=?
  48. XM:$*,+,<0%\NA@*1FHIEI2,PB')08C3;\\,,##:W>&MJ9"57&&W?\,:ZUN3D&
  49. XMTPX2F%_)<IR<<LB%SM%R&B_[!5V8-"_=M-8[D]GS>LH"?7#"8Z#D,,1)MS"&
  50. XMDU>+2NK>WZW1 AUOM,#5&"\!6ZBWMMH+=KEA\.JKL(G[N[C!G>8E0E"%[H5&
  51. XMQ)W/!G49''L,\KBA?QYSR':45H>V8-[AW;"A^42:?&^ ( >!7JM<&ZIBO[2J
  52. XMV6"..T7+*?<IA=N4@@RGA*S&O6E<FG->FG%AF#@0\-CGT0),@S(Z>NDFCFM5
  53. XM&U#*G.OU;&0O6^[^837K$X$.&G;(1+P%!1-!9*% 6*USD!O0YX:8V*$Y:6C3
  54. XM<2C4L13E859)Z%,8R( J/E$(=>QS'_B>TBAPE0$/<.C*>4)%N+GY! 0&^I\;
  55. XM N@7 DY(8+D+T7KF "?3!&@-^W)4DFI'%P5H2#Q/H<V@8C(;<!V0#77XV?0Z
  56. XM)33#V>UH$0L*5S8D%;_5YG O,5Q"7F66%OB+/(J+DV0@)[DP.@YP5QM<X;!8
  57. XM,+EQP0Q"D*(;W@B%HYDA"5PI8 O.5P:'F:&.$'MC'+580#I"\8UX] L=]A@&
  58. XM]-$Q8V4@XG3R.#FM.&4_LDD#'8[3QB4*H8EF*-K=D):P )5A;4_3&.FD=KI)
  59. XMZ@N56\M9[QXG-I?QZ6PSZQ0(C/#*K$$%9^MJVZ1\)CUF5<^+DDM#39K0&JSH
  60. XM9T$DD>"?:ID\7 GG-&K*(*+J (<0>DE9\G(<ZLC8JV)2#R5!X6/$>-8\1J+/
  61. XMBGC1'?-\YLXR*(!PVX+5A[@ISV'.,%Q]&A<[?:8FX5P*3N;,'#I;@ <Y_&0@
  62. XM UW/]^@0OC.,KV,FBBC(S#8N.RTI3VX0X_+\Z;RHF2X_0JS-#P&5%?O94Z,V
  63. XM=%I^P*31K:2!DPD5PC%7Q:CC++.9*E6-6="%39Z>X3@"0UY8HEDB"KV$@X\S
  64. XM5TRH&18%_&I<<S#IQ_+#O?8]T#WT:RFA6FE/70:E#<GL2=G<D-.=YL$-8X #
  65. XMH2(F0S+-H06$4L 5:.,&'HZF2J:QDW$BF4--?LD-FDR@D_0@'%8Q,$,W%0^<
  66. XMH%+4-.!+6RAPRQ&"P 0I-*%")M)5Y'J5@GN^(9YUI2%>R0#.Z:SJLAR*;(7H
  67. XMDQRFFJB!130-O8C'($DEI[7@ A=YS, KHN[.#8@5GRYM9X9'"8PVTQS;7DR#
  68. XM@CE$Z'-O H$+\/ 43:(I!0 5V'6Q>0?W!4>2])%NAL)@6*MB;+D]Q*?'$#N'
  69. XMSQD6H(D-3QH8:\&F> >IQ[$2!_U:E^RB9E@WS4]J=:L^^D!7LNH%;F ?,ELU
  70. XM^:4V3V54R*;(Q0$S\;D@0$$,2HNDOU T0G30 4C<8 :09%4!"9C#<<H AXK4
  71. XM  0F !&A>D""$,#XA$&!$5SEFA\2$!G',"ZO)D%@Y+RZX,4N\!CF=+I0(8_A
  72. XMM:V*&);#<U'344U@ELTR/B<[4Q.788)GTRQG/<LX^H09=J;)ZBI/>IJSH,8-
  73. XM=6B#&+)"H7Q--0]Z3LAWPE.BMBZT==;5UD 0_3HVZ*U]-.SRU$*VMS<QF'6N
  74. XM@UV?9/<=-!#X=N_3'>_<@S+?93-X-*Q7\:9S/&HI;Y[_?!Z?XC88'=GZUK:.
  75. XMS&2$4(4C'"$)3C@"=7SD!" )J597W*)4H+K;OYQF3 *CZ'<V::)?%<I"9S@#
  76. XM!]MLHN;4QL_R]&A8"A6J7V$EI-L1#WEF102_G" F8)Q/70C$2=/DP4P@6$.^
  77. XMIB*[:]Z[#L_^W1NV/>6$$5H!4 A?3%"#/AJZAJAE")2)(E[;,:TG#5=B;<$Y
  78. XM5P9L*Z (<:@#QL-36WS2X4S);939"$TN;&M;P\WN)+,2UI7N/.0L"3</2;A4
  79. XMI9#FA^(%A-=0>/Z0' +].=ZFT]&MN7!H6UI8"1SAB;#[S-7$IKF-5-DU 0N"
  80. XM?($@.7*X;5_'A77T@0"PGV.3&!:X\Z]?*>C2N6;2P=US,APG/V(HWW0.."@S
  81. XMG>7H9[?/<>0@\] $^:T \\M^[2D% H7LDF5AC56PHA4P69E8P:K<@WY6:UQ[
  82. XM_O.+B0RPJ5 $*>2$V)Q-@A:"0.QA;Z;84SZFFU:U-V&1/&*O L]QZMEEO5?M
  83. XM3=^ACE&0HA2FY/[VX#G/&;J"J$@NZ@P2/I)P3LE\/XEGSR&;?;*U\H;Y:.7X
  84. XM2$T^]0=%)A;<,Z6F#)/3H;T>Y["W3Y*2-O2F=)IN.BF'^.R^$/.I>WN*?_GD
  85. XM1UUP8FH<MFP:!GZU47=.HF&RQBISD *&MCG6DE5>U3X:-A (R'NJ1#Y@HTW;
  86. XM\A N\7!$,7S787RV%W[3!X /I #A]'_5%P9F8 :D\QP=I4C)<6D=(@=KD%7J
  87. XM41L$5 ?F!WFK\8,IDA]^]AT^:%>N47@*)8%XACZ#4C<8>(+5PD>]%S)/F!7!
  88. XM%R .$1,C:!W%QW_(EX+,%WTN&':G$8,S^&59&(7HTH6GUCV%U5>'0A5*Z$SG
  89. XM=22*]'ZFT8;?T4:=!WJ""'J1D11#P%E%  )($ 1.0 1, &Q' !)0P"EYP014
  90. XM"&KC8H$AZ$SV<222<R;:4F)OQR>F01YE%C(AHAV-I"R6V'_6IX<%Y"#BD8D@
  91. XM^#I8<2HT-FZUU24Q$3,F1!<H=!9[5B6M8S(L.!U?2'S881Y9815\HBT?=![8
  92. XM0G_$^#OE\B2A B>!HBW)6()BB(+*UQ63EET%:!8J)C>Z) )" 'QUTXHD5Q/A
  93. XM)"[3,7O!ERC/1U3CDAQI &T(:(?#\A"E,2,M2(9H*&>E,VG,* =9]H_;(2&O
  94. XMH8!0-8P"9HSH*!<B0 0>R 2UZ!KPV#AGB"A:158?R"BVB&%PPB^QT579 U4_
  95. XM. ?F=X1ITG!SL(1%^'6"$ALRN80YA1(1! <7@A0;B14="2X?*3 A^66:6)+C
  96. XM<9+X&(T Y9-T8(8$:2)<YW4P*(,2$DV_:!+FMV?@ 49+%A4@ V[JL1Y[(1M.
  97. XM^110J4.04ALXE <3@Q\[>9'3MTM=T85#.6'A6)!'N6%W>4VKLR:&0EE\@3Y2
  98. XMN9=4F5U6J899Z1=;^1-=23J10RIA^09CV7UQZ%4.5%#G49.%61M/P86-Y1=S
  99. XMZ01YIH5UPTL.)1QY*7V(:91S-FED]Y>]&!TJF0<YY(=U8REQ,XD9\Q1I,B[K
  100. XM2'M(084"XWQ0I2M/\F4,J1Y;$GA0L8 JUV(?=D+FUWYL0E-D(G^D&'A7,EM+
  101. XMA3WKD1]F8R=BT%WBDXG&693VR$%MA!D5T1XSH !X5"'L>)R* E7@DBBAIG^O
  102. XM$1Q](@)#,(7]9W[S(4WBX9_?MYX$.6EH9238AU595V=T0H]UTYXPIQ4"*@)Q
  103. XM Y\RH"SU::'X>8_[&4FAMJ'?V$=A0H=_HJ IZIKCYZ O$1/8!R8HBH"]"1K(
  104. XM!AM4=$F-@CZS\2"FD716PE[MLW;2DCNA>9=T4IW :*#3T8\8>@8NZ9FTT6W\
  105. XM6!I2!R8V<S8-TA=#E ?G")\2 0+SB3-W0ED+""5K)8#C]29SHS2TAX 0B!=0
  106. XM  (?J@!YUT]O\SL&I7T=>J<S$#>?A)_]B (S4%K$!5>W)%J20UV_\D&--%@Z
  107. XM@!2,*&P M(\M5%M\ET!(6J<NX)OUZ5&=N*9[XH !UW68:8JA9I 8]:)3ZI*?
  108. XMME)R=37C46/F4P93(:7(R2@V]"@^Y"$\F"8A,B)T8"(H,")'TG-8@3LA4U.6
  109. XMHGTIL ,*T(G_R"BFQJOYZ:MJ\E:--&@;@JR1B@>3RG;X=*UX2!L*D)0/MSHY
  110. XMN(/,D2:=*(13T9)U&@1_(E?(E4/O.JQ)B&>FL5+81R#ZZG-J<B90E5NPZA1T
  111. XM@&#B(R)9,9IL12.$,8@6BVNBYP104 54L$M/, 15 !?(AA>DX09KR4:2B(G3
  112. XM0:]Q!UE_8G%E@'%N608QXB XU$9R83M<1P<=DDUJ."8%])0_R49A)*N<-BRI
  113. XMBBH_6UOEU1NXM!U_(8."DK#3H99#2SF_FB319$\LBT\/H:"S(@2A14X3\FGD
  114. XM81HB@$:"0SA:A#AS,! H$!YEDF_[)D%HJ[9J-#AY !8B %Z6(T;AA#XWU[(*
  115. XM\&]4,:-'PC<?PE$K*U3AU:7XA!7H!1MN&VJ:-"M[=5.&XD..N[-5:[)7Z[87
  116. XM-!U?]#<4AGV'(CM9 24!Y5I*Y08[@#9O&9=R\'.C&+"R!1.RM7RAEH?T.BM9
  117. XM@&_@T2?\.2Y6.SEN:UKDY;B=N"IHU2M%YW<EHCOL19E$E#OC0C@UMJ=J2[6U
  118. XM<1QF0 ?]X7=5<R&$TR>K%E3[82"9M$F_QWU:,3&UFQ5Q(R3P]5<&YF?[1[1_
  119. XM*WT;DD,BP$9:U*-W5;KL,1#OT;K@\K<4TF_G$2B<BTGC8L".$T+FD;"YLU(P
  120. XM*[,A<[R4^Q+>DCMSP+!(.S,>3+3-I;475G53X;7ZRV<@8+C.:QPFXB_?.<'D
  121. XMV[OJZJ+T&KN&&Q4%$A/5&&IJ>QH+MR&SX@3=IZ)H(!44)P>C>TTE1%$W)[5^
  122. XM6;F-Y!=4.E5U( ;T>FFH851(I;U-0G&QM1\48K@/*KY%G+[BY<5"12&QH<:(
  123. XM"T9$2\51^QJ+.G]]\I;4U3'5>D WI4!7Y%SCPAW&,6A\ JK']KDGB[5F-+P5
  124. XM5F(4M47\JDF?0ZI0 5)LVIVQD7<J)&T@X\;0^J>8DL0QZWT?;!K]RW5!M+H%
  125. XM5*UD<$ %I)/ND;E(N\*&.RRP0IE#RAJ*\AJK,R)EDF4-4BZP##<4>[',K".1
  126. XMT01/$+*)R&M40 4_H@#=&(;*&5*X0BW  D86HBAFL\>D6*E34 1,4 1#0 44
  127. XM$@1$H 0AR\XUN1-.4 6M12971"!\/*30YA#=A'_PD\/A?+ZF$0,4(@,4THDS
  128. XM0"&2LC%\<26%!E9]-3#(,G6V52H!#<[F.R6C6QOT7 5;H<^W),G8]P9BD)T&
  129. XM"\K'G&H:-M#T1Q&=* -@]KQL$E+2^U6TTCCG,2R(%7*@:1IC(K5CDA]>>Q84
  130. XM[-)]Y0)YP<NU2W [*JE9*9'%R'W1<6:YW&"D0LZHVCGCIEN;5B6]* 9J,(/V
  131. XMH@!:\Y_38<$%1+_+W,QN_1C/S(B8407\HQG!AAO 1@1/< 53L!*-^!Y#<,U*
  132. XMK5>.2P6:A%3KJ!6=6#/S2WB]J0!#H+A0=<[IO,['>1P2\F7TRM#5.\H+-S'?
  133. XMR<-"5:7VH0!A4P:8C70J0A*J;-)CG=D0U"=XR[^;U]&K[#AR>UIX/ ="#=#2
  134. XM 2Z_ZQX)9U=0U8E-S :HHF&4K<X=VXD'JB;;D6T#AL-@M%(VK+[0Q+!-_)/;
  135. XM41K>^Q.Q,:57#,+N@4?G!]R.6Z*IO2^/59,LYZ)PLM[Y\<6I>MW92!R2$[TO
  136. XM$=%#X7U. 2<4H@:(J[ LN\!OD'$)35E+!BY^I@#Q/8/[ D'18;C'S552T;JU
  137. XM@3.QF!#Y1K/^I;DQC&])9\/%S<+FYR^W1)130L78&&K8E\K[%RA\H7MMU\2#
  138. XMH@=[R 84PM50P6Q]I;JJ_&\G\)WVO17-H<I@@AHR#JXU+HXX7LOB@2H6-VL*
  139. XMT&Y=O'O=J]SHS-S1]'CI_64S:7;9]>#0HV'C8@2\(AY3L'@*@ *Q,5*$ VUK
  140. XMK@=EX+=A 7":]!NS$MF! U7N#,]3T+$K13C9-L:NA=H0GA_U<1X]H3[HO1\2
  141. XMSMK[1]^Q\1WT1Z1L,"83U'SRW=$9]1OOY^"([I"L)2?O',^.,US%]2MD?H_:
  142. XM&+%G#$V=:.E_H2S#S=*-\M&O* 85=:M>CDD_.$OCHB"KT01W?IQ\[%X <B:J
  143. XM7"C9R09"5Y^Y)!?X*KYOZ3C09>%WX :V?=0;W2=:37]>F22&,@8SM"I(ZD"J
  144. XM"VT'GA7GA]U2T6>8*>!&TNY:D;V'_;XU*;\5(W0[:CFLI!6L.KQZBB7,NB^Q
  145. XM.X"TI%XPTV"A<05-< 3;(0;"U*?AA54S"#-]0B1*^S%:,00SFB3[);'U2XD*
  146. XM,%*+!P(XHY!9T4:@$;P )\F2DO*HP;)[NM)&%3+@&Q/>+LY]8N^;N3HS,_-T
  147. XMKH<L3W@U20;1_7(==+U8J*MB.&ONL3P!EO/4#2=Z^NVO6+S3$5)3L2I%+_2-
  148. XM"^GE/>'X5N$6MNTAH^&5S 8*<.V<AE2&FW1*?Q5,;]M$SZ81F^*!I4C=;;#X
  149. XME/<*L.2Z-[VQ8>/[E>--12Y@T>,P]]61M']"3N3M3M2D2[Y6=>3[Y\:(_^1L
  150. XMDJ!:0?C:(N493YJ>8?+$/A5"\.V/O:.I#P*K[_/BY%H.\2<3@P<6C1IEX0;E
  151. XM5;LMH-;W*&T@B%0AU1SOOBWE$A/CADO3P1?N:Y]=(]R2DO.Z#O3C8O-:_T-Z
  152. XMVNO\-.R.:^QXMN>2K>65W;'6'Z7)_\VD@M1=/C.O'_OG^XH?1#H78FHL^X/L
  153. XMZZCGXIS1$R^-H_TOH=%,K]I#*JY?>BL@N8/"T#K@);PH#+JR?XX+_YT%_;=P
  154. XM^!AH.3L)(;DUBMVW]OP>AX-[_\4' 22?U#Z"W]@K"_WASI4\D@4%7@(:T%>/
  155. XM+9MAAQ "!UH /Z%O0PPU^*3ZHJ\ BF] ,ZNCYCDNI!;I9L8.?(%@ ER8B=H4
  156. XM+I[#<5-1.*_$:3*\D_TPF1MC6=KO*Q7 $[@:\$F$"@,XI$]P0!0@ H!'&R@-
  157. XM)ZEOI:'G5(/2U$SY.WB _HV02+?+%!<(6&Z6C7'5AB.HK]J;=6MW  6?W)<G
  158. XM"*(46)QA$^>!0D1!#7-@DL22J!!5\$_,/\31F=K@(]1N2]"T!20TZ+U8F/CK
  159. XM<^2/RYV_/1@[9 L)!"*]Z">)/7M2X1@'>OL39A -_KK(@PE_TB2\$,5MM4U!
  160. XMH3,%R%T$@R9V L/4&.V&BI)<ICLS9$#LA Q">/I(5A(H,2Y/ 00!]%5BY,E*
  161. XMNT'8A !>,K(' F">]"%>? $6!K1ZUV $1M91*WL/56478DAA(-:F$2JS@DBT
  162. XM#D9(65J=?H*&%@T/4H%J15G^'*KS(.1*0DPO"27F8@KW:7PL3.C,"><UR$)?
  163. XMRVMXQ^_U@3\\-Z0$V9%"*BN'&IJ-FS?]H,I'8S=F DD]&E!H4?3A*W*'':S$
  164. XM0!!\.+S #?;)>QHG(-2(MT830X\+N D@@"TX 2G W"X570L"".,*Y+6])K*F
  165. XM0XN@"$K,#;2 Y2$A:E'[T JO;PI4";   HH 'I!&PZ-/H "/XA>F5U!K*;YM
  166. XMAI6(:O5EI")WJ W12%6P"O!":*0"[MH/SBH'RH'S1,4*TE0D$X1J*/20E:* 
  167. XM? >IH&][2MO,PT8A;U05N4 2V^&6.+ R\<1.QET,%?2-I(E Q$("IP_>,1$9
  168. XMAC!.!X@G\=J$X@AX(:;:74 *6%J(X=4K7SY/Z&26KX'Q+*#9X'B@$>3!!)''
  169. XM7^I%@+ JS&[_.#LCE2S RQU\C GQ&U88^\;0R,3B(0,40ALB1[T0%MC;UVE8
  170. XMRL))X)"=D]R:@XGX8FWFLI4^<)<RR(#5^!"L#CC2-WED3ZXA7$D?_23E(49T
  171. XM8T->16-AA)-K/;8\YE<U9 I4F7+#SYZL0A;&ONK+6:0U,[$F"DC#$!GTX>OI
  172. XM:YR!5B"!1'0%GH 46 )3  H$@2' $X+$RVN Q&O4+9SLD#5JC+L:;36)UIF&
  173. XM/949=5[ZPTF$PN[8DYY'T%C*O=N,PBI>U084<,@T'7U,*JZ&)%R(55$HSL;!
  174. XMH6^S#AHF1T?8%4V$OKEP%&I<B  '@9GH5=^:%;<NY\$X=V<28X,_#'1);^EU
  175. XM0@JV4K:9H1 U8F#/R &%T8GP8T_)%'MEJ1BN,5'U3 V+] NVC3]]2+@8(O%A
  176. XM6%".H.6\ ;49E!]WG=Y+C#F$-)6]$!?S-)W4$2A\\DPNI0&C#VT;D%1P^%"[
  177. XME4+;1ULZG7MK4:U-K*TASD4IR46KBW"#TG"QJBLIS\:%:UM#4V=2BH<A-A_V
  178. XMD:B3;]&F+A&ZH^(<.U$=$FUT,DA>NF.XZ;0CJ>.4XF%,. 3+HR$C7%L;D ,R
  179. XM,C3(!QDA)V0B^FC-,$IZ1*, TD9A4XB1/:A"5)12A*M@I [R5R!@(KI"5G;L
  180. XM2D.="'EGD+$@*0H1SIJ@;-A;X&H [J&G,*1B0M6;7.5(/Q$,98$"=E2>>Q>L
  181. XMH=O\L^807G1?QY!:M85=.1,>IP';WW1 '((B.:PKXS2E7$!IJ4@@(.&\ 57T
  182. XM+HX1N&!_7">,=3$O<NSR4%L<*H9+$*Z06&$H[(\B<T!MQK21K8SI(#AFG!F9
  183. XM1(B2\:'3T*+*82K:#@#3C2$(L3#:JAR96 ,H(RJY!R3@Q *%4X$32.]8U2I"
  184. XM8R+<%N%(ERIC@97,W*$SP415J&'Z0@'\S$8RI @3UYR7?8*;21WK(@9:DK [
  185. XM=*YQX]TYR(8N1]XM^17$Q3EL/A9#FZ)'P:D"X3"QD F/.2*U7LA\8R03S[0L
  186. XM6(32XLP3TQ:XT$D<JY#&J%#555%7_4I&,A"X@D0:YO)H+F3B<Z" H>:!6 ZE
  187. XMPW X,GFD  K1BM9 QGA="2X_3 $K41NN +949AA38QJKJ>$">B?A;(*_05NZ
  188. XM)U\W[&YG;="=68$O@(S-]N&0ULFT-_BFA+0.J&>MZF;1BU4W<FBF/M.0J02(
  189. XM"]E)2 "UP8'>J2R$P+8DGLV/D)T-2H8-]V/X9 ,U!@G8AXD1*YB012("1U-[
  190. XM);!*1CYK@OD<GOP$-9R<.*=8 J&#@! 6T.2P&L>#/^? &M!>.\DJ:I*,@09V
  191. XM9-I#4/4GD24?=4A9/LA],8"8A*(Q!#D!BSS&:N(3"@ F_300(2+ 0G[@)R;4
  192. XM2$0N#C;WEM5#"$Y<\X:BMI !L1*CWY2)%0M9"DAE.12O0+BDELUP1]V_8[<Z
  193. XM_(61P('993;U*'V)+/BEOR08 3.#GIG*(T%\%L(,6@K3&C6^ANF8.LJ9 %KV
  194. XMDF+V*NAS,3V)RGL5I *RP5$(*,$2H$9D*W)BM<E ID #;> P!)%)!T^:!]W6
  195. XM.&@=A;H#J(T-<)M7I.D&IB7A*RF1MS!'GS,N@6== !<B8&@.A 9BN'@=5.E^
  196. XMI(N)2I [NI/0W)^8<_;$*C('PL0%6QCVFB1I[NS$K#. !I@@5GE=1;!QA$Q>
  197. XMF0Q-VX6Q;>P/7"BQU:3F4AZ]/ ] ,#J8TF)*YY+87V*F8F([Z8NS $(CCP)U
  198. XM,T5OR927$5DN] 6AS":6KS8LTSN8\GHHR2M[QP^1\0V)%7CB3$C*#PPG#' 7
  199. XMM/(3P-[VF87Q[K?%&6-Z%EC5KQBGJ-0'(E/R5 Z)2W3)D;3!LM32G20/[<D4
  200. XM8!->(F3,KC> '\@D4^)"9X/$F;E6.BN"@"/U:M.K@7PA!>"-B 1YJ#?A<O,X
  201. XMCK! R&*B&T5Y="YC0%0:-!TF:D75/BC)H9P-HM<)@]M*^*@73:16!Y(:ADSJ
  202. XM@Z,A*;5'>A"K@*1<ZLQ91WVCH>+3J3",R +/3%"J##L6G,\I*3Q-9-NB-8ET
  203. XM4B#SPE$+3A00.>)K"<B6<3$V?\)Q23D7KY6&U=\ "*NI5,BE]D2=ODRSP76*
  204. XM)5&+(4?N.Y"-NN3&(-X7F SIC/1\ :'8B/8:B' 0A$-=F)_[51?(S"\SK(BU
  205. XM""A6QJK7C"B?2P[&SN$XDV.*#,_&&H@L5.N:_*YFN$=9: V\@2 R;NF6;E(D
  206. XM?)OV28C@)0<*C-HW>%A8"@Q_Y<U>+HTO$]EJ*X4 J(LG=H* L[K@" :[_$E+
  207. XM9F?U+*]'&@C&.7*C&&D.G,%(,P0FDTCJ6KD#^\1"&@(J<]K'-)P&YHT1(=/8
  208. XM(:HKLJA4X23U-;#9\3G&:PT! ?1.DCRZLJ!<\95X@ (BPH]6J:/E:>PKR& Y
  209. XM?12VTLD+ET/VE,+2JQO4]&',)[#MLL(/.'F=K6SR"TA#&[Z,\T,J;H*J91],
  210. XMP<(6IPBX<&]+G[I6/_H+[^JQ%*(T\9E12Y47SYZ 1U@]K<<()(%T9FPN9,QS
  211. XM@-:SK!2J$Y)";.>WE)'A\MC=//-5XHA0V&!XQ ,!8A./8>B$PZR2+9JNU.$&
  212. XM2+IDZD-$Y2:3-6?M1=D20]-HK" JJ('*?INL<QE#QA-@ A!/UW7/316T.A4A
  213. XMDW!Z$@38V70GEOH09O*@,$&.59Z""N(8'&;*LH0LS(J&NC#H("FW^!!N3,UV
  214. XM'3:+$ER .[PDB;,.;-(^\6^T0A-[)Z1/0I2A0:FP)*VAC0GFL1=5GE+D!A#M
  215. XMNKRR?R(]V+ZEX3"-A;L@%U+%#BE.-2OA* 2K(W?RY$W 2;0A0G'M:.%YQT[2
  216. XMMD3,A'VX@M90M+9CI8 1AM-=:M]SO2F+Q&NJ0/_WKP".I,U#X"++"L?<-EO&
  217. XM5\=KL+XG,[F/, JKUFAV[$?J1+@P)3@E,F-0&L!]E_.*:"X^$NE0 _@YCKK6
  218. XMVQ;:F/)LW:6\G4-B\RL"+1R*A?Q"DSA! )<(\5KWH)J^#KDJ#FP'MZR/L;HB
  219. XMV"WX<1PB0 UPAZ(#)QK&A@%Q'.K2/H5,ZP)$[BK%9P-AT('!\@BS"L5Y=)$G
  220. XM%ZFDW,:':7\0AVJ&NN0)C-D_$3FN9F,I?)^N!8C;^R)Q09SJ"BF!(F0TW?!S
  221. XM\ I&.#D.ST&-S5S)@RAXJPW%5LZ*X21;S75!P@ZS^4DS ^#1&2($@YZ35<MD
  222. XM!R\[%MTD<73EB=)%AE!%,C).671W.!>*F'8KX4*\@>6Q/";(1#0"FJOB-8\5
  223. XM:-XHJPK)$FL-Z86QM\(F<%]+24D(:Z-&TPG";*)#'9JZ*DKLBM:?EG"9T5\-
  224. XM&?4!*N 'F^0@H)B5VKQDU-&1RUT[<.O$E!@K0RW4#+'TH+EBHEP0NJ.AT2X5
  225. XMX2 CSE+@*ZVYZBK:%*3BQN"$3[NYV>7)#HH] T]!&^<)D##VK<G8>G8'B\(0
  226. XM2 (Z]A"U'K7@!*A $, "QZC;PJ:#%&'[!+L]G$](3)I6FI6#R !IZYG-$[N,
  227. XMB9)U56^5L@(/I +K;@E_5U/I+\7@9V4E+S2XW58"Y] U'4F;B#Z\TPN8O:(4
  228. XM@WI-L4I9+ $#7+L0,,]L6H>E*O:4TH &5F 14 ^?PU1)S7@)DF+31@DI 1<2
  229. XM^KPVLWY4AC<S'<C-J_T/%+PMGD2E\K=M K79MF:C+=Y2_44)D\$(! &Z1@5,
  230. XMKJW40VXP9AZI'>I!,-EK"&,<!*D<X=@0QJ2-AKF3<_04184K5QM"SA(CP.:2
  231. XM/'Z@/3.+P)H6;0XA>((I6=9':J<#$18/1IAB*("+5 24,!,>"(ALB_:A:#2Z
  232. XMM*;B_)>S)1A^&0IH2?&1K?BM=2 [QI\;::I0P ?9&W6@80:8ALEISH._ B\J
  233. XM#EM4#(!6\+*A([0/$"0^6%PYB&Z/D^-K>N]C;M27$#-BE,4T1!0/Q@ZQB>;D
  234. XMD)">P-J#E@;_8)Z6D'9>J8-)I.,!KAP\C3,G3%77A*M%4J)R8(9QSB2D%& ]
  235. XM#C+FRI8)\G.NXG8P2MERSYB2XQ=2E.^_7($+$6>62W?J@E^HU7,M4:,(3V.4
  236. XM\-$V+8AH'VDB"-K>*$Q"@^F0HB"^S8Q&S*#U@Y1KEE,Y6N$4#IA!04M[D2&4
  237. XMP?%/8'&_;DD?U#%PO8-=S/DF$3"ZG.+JBAR[2,5+0F3ZDV\19T%.QN$0FZA@
  238. XM-^RY)/ JX3)YN':A!*- !.RQ)>Q$./@-?AVXXC2V1'G=45,X095#:&FJUA@P
  239. XM*V%1*@@G*-1)DWMP2)%C_JTT#";66^GV*6PQE@-"#&3:"=,GL(_:S"'-@2YN
  240. XMAT&Q^'C=TB L;5;7=:*FO*9PE^CH0@ZK401EJPL_MJ[(U,I$J& EVM- 05!O
  241. XM/,;#\U@$0 %@ XC#%UJK#33Y[<UC/>B4M8[R@PI@SB(#G&V66"2LD$C'>/G8
  242. XMZ5U716>2G!>%9;X"Q"W9;:49:X/8% YH0)WL1TG;=@_S$>6^,5G+1A 5"X!5
  243. XM%-D!<64BA5):<&%I3M/I?<:-F>FLWU=%A) : :[(F1G/6!40%U)R$V;*@:NM
  244. XM^FD%MMR140"]L2ONDNNPS:W<!..;&:A3.PIBHM'E^VVZHZH28K03F\!E[Z!A
  245. XMJ#,,UKC(.=,ZCBQK59S+UU)EO+89BBUC*SEL6U NF#'8'R\EL.QA\]V-9)O!
  246. XM[G?J77MG/VSN!>3,>:#$K>2M$T7A\4L&S'F@_K*@)$ %TIE'AL*/,">_6Z7,
  247. XMEE2LJ?K% QJ>4@T')YG9UX<%7(W#&5.80$PP4U=*^=#;V<E>(\1"Y>"#A;E,
  248. XM"Z<O*T 9H<.Z[0K<4?E2P\1FKEQA6)4;FX(V!;415/5<+F7$/6O!'"C<.1N3
  249. XM"6T2DI@Y+9052LD=: -NGH(=8)EM]JV6N/J22,V)$)B02^ +4+;.(%4Q'JQ\
  250. XME#,%'U95RH(K%X0Y*0)8@$.#!%ZG -3JAAA21-=EME\-:W$_J%R-'U?8,&L%
  251. XMR?5\;"^+V4==R#8:LNE 'J(?G8A'I0A.&%2(PUU,(%HL(/L(WGV]8S$CY :@
  252. XMYM!?@"U\@<#F!'2L9R&I:6 ZONJ.U2X=*-E@3G[!A&9JLZ%"S8D1>$10@ A<
  253. XMXTA$!38FK42]B! ]C@LB$-U>GT8QULC:"'RLD,6"G+6AHP_1^D8FS9[$W6"-
  254. XM$@$-1H"N,8$OP!,#G8,L G):]<#K.=VM"QT!2G/?XSB^@'Q!3/,UG5-TT?K2
  255. XMV.E$%QQU9:TS&&R!4Q!J)<8<?:A?B%U [-U8& =21!B%.?E"LSHIG#,YC<XZ
  256. XM0[.VUSRT\>V+%X G%]U&*8>?<KX!4D@Y)<Q)%*@"L)I>,]?)E;(+-LL^V'(#
  257. XM"CR!0%<9+D-FP&8(,8#"HI"20'.'$R@#7  -G( 6  -<@ PH$'QM42J70@4'
  258. XM9K&(*2W-:_DA2G*H\_2$((Q*!@,*2($1) 4T V50 /]3P_ 3(PNOLB7R= Z\
  259. XMTV#P1"/0KI' R2L7757ZG*W^>SI1[^MR<=&4.9A><\(3>:([^P(?[0OHV'2F
  260. XM %23O$)?2F)?1)UHFF4[[^,QGC'8:M)&=CIQF]3O!4; ,E8Z!U.,<0G+<6H.
  261. XM2.M7B%W:BU1DJZ<<&]37(\>3B:CRK*?$$G5\C"U2EG@S2?:1D3@B<\74AF;(
  262. XM3+@I@_DMVW?;RTZN^P=4XM=MH2$BAQ[.C4D88F1 :7%,NJ0YG $[$'WJBYE 
  263. XM;D$L#6&EA;/:U#0C5-02JTKQZ^?RO6=*3-""OD/4R8&H.V8J:$S8?>9D"@0!
  264. XM*P"OER6$E) 4<E#K#"I@EP6&5:C:3<R6'CHF*)Z3@U<D$"FG6J%O4J1<U])-
  265. XM5E,=>6Z9-)2V+TK6 Y:T.S<L8-KN0@=L,J>&FNSKT_Z.5"UJPT[T.2[ V@TV
  266. XM*4)]8N^ > (9^?HX!"UDTBO2  CX'NKEAR_!M40"D("-+0(OP-+RW)5+PG^N
  267. XMW(!XN_KCE.JI*GG^P]19@OD&M=)#@:E!T_<*#)]=NFQ:W'(E)F %LE6<G'FO
  268. XM3BP+N6):C AH B9"-E[-)(MG!H)FZ- 5\L5H3)N9 !+ :ZX",$9 G6+*TJP3
  269. XM@@CHXTEX"3.!CC4&V@ 9(!P)(9!3 :=4!"I(5SCD"> \7$7)+;X2 #.Y*7T\
  270. XM 0S+7@$KW%X"$ &(%ZDPD\F3%3"YFFT#V@'&/ 'O$\JA91_/I*JLD$,[3'['
  271. XM&?<MEXK(6)=C<C:](2"Y*3_ES]!L5')-<LG[.*WCY# F 137JQ'*:T_?N.50
  272. XM #TDV2V!R1,Y$P81Z %(N;L$,,N%2"A/S'L<:,Z!/MZ4!W-G>#)P8 \O#\$=
  273. XMM%I-\CCD<[MNNYAX+I@=Q.X$&?TS 8AMLFVV@<2+D:!T@)T'ZGT89=+ B\V^
  274. XMS2PR!+:DX%F"P)T"-H&.L]2UUP-T/W?PE2U]40^M"W\F4 D-YXX-]"T/#3&N
  275. XMX<]TB_<Y/Q1FG.1:ELX=:+"A@#8\ZVR.=.YPV_[6'% Q:2MG## N4L#(%R"F
  276. XM+$%]73S<J[$O.!2WQ5)EG!A/K];P*I9/XIAB#[,K-#2_T#!].E$Y85AK5C!-
  277. XM1.HT1?I?JC&TK4<2/.PC6+ N:A,[#+.VK ZP[K:R8_^*'?05];)JT:T<S%J-
  278. XM 1?.+BN<P926;H%)5^ E;JMUYI":4EU8XW08*7W*<28[-BP5&-G, ;YU 8?0
  279. XM&/G0D!:7Y\5/9R.EN^&D@]HL2QI(=_B$52;4=)$S6GK)J@__2\N&$_X$G#KG
  280. XM@?T39.PX0+3@N#H QPV:%?3)\^K"^P-WAE@:#Y19%41Z9L,ZT1UD$[#HB[6(
  281. XMPH5BE3SS0$?[BX"T2W/.3#R'4*^)6H=MNAG.9JXQU-VB%\EA#.S3:/:J+1LZ
  282. XM.R6V/;=D/P*_*TQ9P@,([G";O:3'=K1!TSUD.2SMVB;=L:RSQO)0,RH:.)&7
  283. XM<;R$-(8A7_OG:\-8HK7S]" ((@(KXGB*)58LFH@])6,(12><[SICD#;![,B(
  284. XM^[N?["=QKK"8/8!SW0Y\0K)/?0.+BW@AB$G*#I3@H@\X<_:@V*9B&1C:8.YO
  285. XMUKE#=\Y*%!]K#U6>'IB*,?6<^G6;U7-UR .1:QZ\XR<GJYJ3"/!:>+3MN:I;
  286. XMI$D%=8?;+W@ >E?;N]/9NQ<$32:&T*CXD '@3WN6QR0$WL5'WG9:)Y8QA4(-
  287. XMDJ*,[,<J_W6NO)M7U8&%66V;\O:0T[O7*7!]3Q2OKM.KVB-\F5]EL<O$'U.3
  288. XMCD+U$9M\WLFX8NQ=#K<?.S7CE6U"/??@D/S@X_N[!R[3:7Z_X]0N!^*!18\V
  289. XM,Q,DH55XN'WA"2:BAT4\<M'KWO1<@QX]&\%<?*5:E=B6;-97$UK'6D.RS..N
  290. XM/^$2T3QLOSM%R*PEEV??8#$%>>H3K1[%];_W\-E]>]!JJTV>K%AJ:?0<]B.0
  291. XMI^C/'0I$]\8:M;_\Y&3,N=V,E5CM=OQ,/!N!MD,W6)*)$$)9]M2DWQ"=T,2O
  292. XM9M\-63 )'SE%N27A'GF<-IL)7/:P;1"6G<J.VCKL*[2C/^NKK$XX0 \H'B1]
  293. XMJB^!]6)/A8<M$?!M$-Q9A7JE"<SJ(%_1U3V1;_?^O+JO0"56"<%:0C-W% .#
  294. XMA8PD, 1Z?A-@(-'AW MYER_=?[2?'0[;O5 <OWB_VYGG@AM2T!M]G%YA 3%M
  295. XM"N%!^ET;)M!!?%->8EFG-?(<,]2,"9]F)#S^LV>GK>/ </D2(O1;_KKOK%. 
  296. XMP;-XQ.40IJ-UP>EN.'L%6-V^0UD6C28\#H[<K3LTKV+=/4XKYUGAO_416"L>
  297. XM['OV."S/GM)(>/\>,IA^WX>'232K^WI(YA V?&T0C$O%:Y58+@6#5\>K2S=-
  298. XMX?''S$X];E,-OI#\F[]RB7Z;9R(686E6>4*]=2KFZQ@"Y?QS4H+TFZ/6X=K 
  299. XM$@B'89<#B#UQU!1SF2CZ#-2C;R@:]*-.>P_)YFZF1KIX%;+E#"K0V>< N:8#
  300. XMR7]/DA3'T?QA/\8G6BO%\3NM/:, I'^1+K$JW>(++>0%PL2[!*$@E3F@B+ U
  301. XM:OZ-_2JS;<=?"] Z=3B)29SA"W%C^1\TPI@H!\">FH1OX#P=D%(W +XE0)_O
  302. XM5QZ<!9)2%\4VL2P'WX?6]J5[;U^19_A%,>++!BA4L"\F'HKV[]T=>!4+]>*5
  303. XM!N%;!G@:M%A300=86*E\S9W;]_+U-2-@VP&?N8!S'O#G[MA5+8R!%F*U'?P.
  304. XM#-/K87P#W]47RJ AYAX.R/*!@#N@D6>L7$>R18WR\957WI D0QX</P'@!.CA
  305. XMJ$R1WQ+H_U%XO,AWP"L03":@P7=:="'/R>#G+LT\]\,-N/*A>T->T><D:'W!
  306. XMG?JQ0GD='V >R.[Q@#&?<V#=/5;$C>:%^TF PL*'\):$;AJ>?@?A%7LDW7YD
  307. XM^<4Z+A8;5Y\8+A#@N! &-H($(,YU_1A/MDV)-_F%;EH@M;<<V4JK#1:$R?1_
  308. XM)!WZ)UO,42,>M[4SF''S'DC'ZVE^YU]8UPP% >1;^9 JR'W"T9@@XQ Q0ETY
  309. XM4M2!$?T+1Y0(EF;:GU)7!;@!HAX!V%&U@HZ+:<0+^G^RX)] "UXN#QU$=[$4
  310. XM2#I;Q[(@V2_VBT=7%X0(K</]D%4\9^(346'C52DBDFW#MH%+G<CKTY(T,$)%
  311. XMUI,:%4?VE-'#'BE"+I"^0MJP4K43YF98H#9F0/0!V*TP:5]106,T!W6)C)&>
  312. XMM55A%L+@$UB$W\G5IEVD7P)#^_"=@'O@P@T!E@E>UQ_5Y%]4%8Z7\L8M94<W
  313. XMA.6&58B$>U#-!#0)1VP=QP?M.5CJBB[1>+@!4P!-J#&=.XH7,1$.BH.#R#/#
  314. XMA&$&'EK/5@08!3T6VC:V2!7XWD?W)T!JO!T&154X&_O1;7*<S&_TBWM )-0[
  315. XM(T+Z5JU &_J,G9?"U%-96'J1(YE34L]*4&(!6N5>%Y4&UGHZPU;XU3T'EM[W
  316. XMTC%$$JE"=L2R+%LTB@]2^91H*\Q6J+S<9T*$O),N#&D5!DQ$Q#@(2%48\[=-
  317. XM#%J#=82Y%$UF&II6HA5/1U:VM%YM8XY4K64.F1UZH<4'B9T,(800$P^F?Z4A
  318. XM8Q;FN(7)0Y*4UB!X6X(/ 4F-"^]3C7'M@ LXC['$Q@TWQ8CRA^A@"GM2R)&J
  319. XMD7H/@M2PJ+U_G1K[LEV0<&B"@Q/$C1DSU>'2PPT6)=UYQ& 0&.;'"A.I\&!;
  320. XM89M!*JA=:MRIESN\"MB*5D"T*2$NG"W(B&$!U&'=@ (06(S3SH2%*4J=8?L%
  321. XM'3PF($!I)*P0%1,#BB#&#":D7C+!'>J%J\+)X<4=A4@A(7(3C01'0%+PIC$!
  322. XM($"[%LU( 1125'@$O IN@KY'4AP6GP8TI*7@$CU+32%87!A!QSUC]95]20*_
  323. XM5UN0,N;:I&5VB LS%[BSJ4D+W8UT<IK-!NK$BAA2!"V^R(>AO=D!6P ,T 5\
  324. XMA.'$$9%$B!/P$M(% H !/L$)4$D%B:>+H= KZ'HDTCLF9"4,5L@4Q,D\&R[!
  325. XM]\1M(3M<'9_2/$!A,F+0PD=\&4>%2<-E$%_35_TS6T 5B4(JQK[Q"G@'ZR*M
  326. XM=3U91];2EO H'<8!HJ6T%@M>JV*BC O%WQMP_(5_1HRT$<ZH*"M,A\ G#FA[
  327. XMF$_@ C2*CR+6 HA]&35%&M=^K4"]D-D!4Z0JY%9"<LQ('7L*%F %? Q306,G
  328. XM9"$,KB*L&&+< "D UE;?01O\"4^8$(:&ZP'"40@B>6#?32@KS@W%"G4Q8M0I
  329. XM%==\0"K %%4AH[6-03L)D+E#8]!L7EBC  9H3Z/-"6 ;ZEM7GYI(4 B)OT7Z
  330. XM]2R::QZ80Z"#7#(HPHSF&PP*#M24J )8B<W0\<>D81_'G3O6"8DFST&7P)3X
  331. XMBK:!DR &V 90 !Q6!AQ_*("B(M)L>VB*OP#NT"8>&-=@(X(,Q^*'X;W= 7+ 
  332. XM&3 P7FVZ8C>F02T90PV%H!TD#\K5VO$D.HFC3)] &Y KA0+'8&TA@N-)*X8:
  333. XM@ $C +U8<4DJI9NLYTDU9*S!N<$F7$N7(KXX@1%#(L ($(/  #! #.+$"0DU
  334. XM0T)P9O0)*..]Z)(=).QBVK&R'&![V(E1!IA< 8S<LC52"">6&\ UQ@QF ->(
  335. XMF[PM8&.^P#7& %PC#, UEG#*E0B 6+ !3IPGD1=PBCD#I BWT$\!AAN0 M0$
  336. XM$02J('X$++2!*N/U3'6.%%0!).%TX=7G)[-,?Y-?QF?]'5U4T]M$6\1-BR#&
  337. XM%T&<?7?3U9$;O0:[T4WQGAA-N1;*6*G(6@A%RE*1W(V"U_>G-X88?./3^#?2
  338. XM)SW.X+@2&HZZ"N((%B 0&L;BF*14&.Z?\0*ZT']V!DI(.88K'0KI>&SI6>%!
  339. XM$G$Z>HV/S>H8>!$.4D!G$S&@ +'C0S [5H]26<%F/,XX*N'3%29\.A?'#>-*
  340. XMU'7^3W 1JI4+Q<534"<H+GD+T<))B3@*P>/7@TU')L?>@N8]8-J+$U7PE065
  341. XME+FDZ@ 1#Z/;4M[= >===;,;]H34CN#%/<()^)-7412F"26*TX/GG1G%C/J$
  342. XM,B:/^%/IV#R6 <\CM/,S< IVX_0X>'4V$:3[ +<P(Y3'[!@$?!%$HLR0*H0:
  343. XMA8)7L3E1!=\!94@Z<'55RI[!L]2&-%[DL<$,1F@#T5(F52_ZTFE@?4DZKP%V
  344. XMY!X4 0L@!Q.-B8_C LI('X4&C>(#^5+4B.+"[O S? 0=Y/)H.H( 39OJ6$)F
  345. XMD65 X44&'%XH%^Q8RLF.-<$&PDH0CI&/:P9ZB1.-H]TE;CU=3XR[] "-CF%D
  346. XM&3%&:HW18PD)56$-,L7UR#7,CG*DES%B70VP1+$70*Z/3-ZX\!U%DDW4FS#J
  347. XMD0;0D#-U'E0J3]]YEJ(Y8K\').E+V%]G@R%%WU@7SA,UU<20"JQ*J_@J0CT5
  348. XM8Z%2*]*2N")XUC@L?XC:W (\+ I9R5J(-N@2J<_Q-T%^D<JC(/E!5BJ=V @9
  349. XM>\ ^[(@[HG.%&/!6UL%(]B66Y'W26O4C[(F[!4F8&@V(V6 V2).U@?P4G4 5
  350. XM_8(W%3I".X:&$) RU!APRYT#A4@LX,5 H )(&B()QX FY!FIUS\1YQ%8GX;W
  351. XM%C2^DU"28,<)I3M18ZJ"562+:(OZAS:B!%!7*Q<[[6$JU-N2'6T0%TA$*0<,
  352. XM!(++E@;6!)3;#7+3=?21>P:-D39V'TA(BM51,AT@9?L&GGA(U"#O-WR=9TC(
  353. XM&T9XQ(T.)4?Y-+*4CM<O1F.LA!JEP36D=!/^W* P?7"0,],8Z5 6DL8$[&,S
  354. XM''^*9,YP3;I@P-JZ,$K^"G[?S28R-#: 9%*Y3%8(^)BL8$8VE?"/7\!+!"UP
  355. XM"R4Q,<Z.9Z73,[!<5)_,MQ."M20U246)5'J02 0(B11$"(1"&- "S$XX&PG9
  356. XM5/(Y5T-#52MT51G0]<A"9@6S8Y/X0:8Z3(GXZ$DQ"I]4C;&Z16+#G_IC&%X)
  357. XMK(PW!:#D65F,EO#A?&L!FM;S$&X[W<XZANOA7K85FI=PV16G0G1S=[5)8<3\
  358. XM$)4!.%*7:@DFX"W7S4ADJ_PM=Z48^576 $SE.7'\<7_#E>L(R>R-;Z3V"#C*
  359. XM#%[DYB0X3A_"F1D8"T(RXD(>R9],CN!CN!)J' HTX.(T1(HD=!UY<P<Y=I=C
  360. XM?-<G''_^#.W(.=I&GJ/>!#I&$KQ1<*E,YI4A9.H8JCR3G6)BUP@",&ZDT^A<
  361. XMXI-?!@E70)EL-Q+U5[F$$'P#PP==)A$=C<PTTT6.X(*HYX 98X%'[=+[B!'U
  362. XM">IHFVV#E:##,^!!!79D#@,NX!!GR0I87I4:WAWFR%YR!^[E@W?2+3ORI5:P
  363. XM3G:5>*7S:.2(D,6E0@'R$!Z'G2)Q/:J5?,14235^&6KEF7=5Q@804YG@V 17
  364. XM%8R#X":L'28"N#% QF(/D(IUG2%5%$YZ-J-MB0I)7=)D7AU"IC9('TPH=U)S
  365. XM*#[(?ZW5F D@*!+VY;DP1@89!$)0@!(]6IX(D"D'! 4J )_I9[8 ?2:@&13$
  366. XM #( #/!G!IJ(YJ%I: 22O4(RYP8D 0Z!,Y%6[EO69!S9EZ19(,XS5N+0122=
  367. XMDLFJR'^,F"%%'+@&BR;9XF@R$_'BI*G#59H$YI25::)-FZ8FT6GFD9_F(C8S
  368. XM&5(.@0-5:DH5ALWS [=@E&> D3E'0FN]CJ?)E+@Q+QKT$]J!2/'?=]+@L(-C
  369. XM!3P5;?0Z=F!.L!-8@3(?R<)H&A!?)</F!&0=/2:5D5UU#QK)!4)-&B=%IJ5)
  370. XM578@'!<$II1LDQ?8^+&"L)BMD7I9G+@BYJ3=@4[B).HD?2DZ+IK1C12@4-$!
  371. XMV55-DR:LD&M-"QDQW),[2OPES$0'<D4<!.U\4T99W7/[43 /&$-62P%H1 @B
  372. XM5D),EHV"T(:@;5LY#7+&=M6/3HLBYNN(CVH,(&0M_2#]07/P(=!(D<+ ^?O@
  373. XMA@F+47DFK4[RQ!F 'Z!47:%LJ7'>;UJ*#A5G<IOX946 -(:;>0&U=A4<EJ%3
  374. XM8HEP*A^,Y<+Y.ZEA#J>(%7&B-E\&!6.4M7AQSY?T)J$OIL'NPW]!+KE#HW<:
  375. XM6$ YH:*7>^D^T4T+Z'6V.S:$KC($]APJ5M;II=Q;7.=H:6H(:+M/>Q.*Y7JY
  376. XMUYGW/@8. E5I1>%9G$<G\YAT$I=CY3GA=)X!KP]S*6#ZC<]E>P=A0C=7P9?1
  377. XM%X8+D>:?J*H!E10G('2Y@!6WY>*77W&>5 H5MP2M*8WG&.EA,IU5$1F %1B6
  378. XMQ$+4*5).G:<$8ZEN'IDA0V@90Z($:,"Q,/.D6- FN4%Z:E2- GW#',A0ZLJ^
  379. XMX$SL>;C4+0-)M9S?21!I=2@V=Y0?9 IY5T!E=?4^7!<BB?0I>J9.8<$D^5WV
  380. XM*-\4/H%!WA2U7Y&0_]& 0,W Z>M<!7S(Y&)^'FC5)[=7>GXGZ4&-&6&R+)5.
  381. XM-;124#)/P9.(3[1XSZ?^:7N*$5T@A7',C"()47VFM?21[4,WT7FA;)=A\T&:
  382. XMI0@6%T6!'$PO3Y$S8456%P^? F 1((TP 'AQ&RDL&H5RM<M0&,"#^E1JG1DG
  383. XM![31%TXO')Y)$:$Q0H//8[DZT#D.0NSY55H$M*<1P&'A#*(E[]E"U@2FB9[Q
  384. XM<&82#4?E9P023"4AA\6O+)"U029581$>/X!.>8@1:>82_W- S$':IE>9=-H 
  385. XM22B'9=B8'4ZH[RD-P9"VU# 87IQ!+4-M56+87[X62I?7X3O/SQ&8A;X)M,%\
  386. XM$^PI2106NA&&QF"(&&\&/9RAPB$8J8;JF"LH"YJ$8BU,0%CP,=Q<EF??.#M*
  387. XM.X64X^3T:(T4 N,G2H8% 4)P,AWP?#Z?/*$<"DLEAQM&WQAE:J<'PYZ5@"8*
  388. XME]+8B'VD0\QB/J)YCPSZ:%[-5GS/@#:JS8\ QW%Q>&)#7%I8(+&QHD- $Z W
  389. XMQ(A.PD/P0DA'DY&)<!1) 3. 195#>'L,8!J:8^J5LV?DJ5"H)J?$*1E5K@O"
  390. XMIB,YFXP)D2374$E)C <7J?=^3"\EF297FX27!EO[PDF$2'V"VR2."I=)Y]JQ
  391. XM--">'^+>@@:TE4.FD)EN*@ ):7< &P0M_E1*LAWX*,('&((=J"+=P1^RY8$@
  392. XM5$M)*&2:2\-23&F,KCI,IJ"G8=P7]A1K.&?\H(V"P;2T!"V4!(7 2F(70\H]
  393. XMX934I(P4F5!&@ EGS:HP\8!890 Q J88H4DGG3E'M !WICZ1'90(W<&A*94*
  394. XMFBT H6EH4J6))E;*9]*>CJ822H@RH6AEB+%8R@&S8Q0J?PD]J8*S8@9P6"%;
  395. XM6$"RT8(B (Z3)& @RPE2JF,.*N8HE=&5<EA/0 SRAG:A8FG"*8>^D#T9+C%#
  396. XMXA/,@0()XKA#;RG%%Y?""FT 7<K-I"K@!J+QY]FE>J5$\$SNI83H$^ &_*6*
  397. XMI6!*EM8$A*EHB9::'8@I^!EV3E*-*:GPF,ZEP5FJ8IDB*9AII5)H6J*;:8G!
  398. XMD*:5#BFKR9!6I)5'-?0F'IV5"A/ 5]X'?^7-P966&.[(+1%/MB'TI-7IF9Z?
  399. XM]1?:DMMME& C&4,B<(T%XM74)&"G*$%WFB0H770CV+CS# YB0,.PAYVG)PW7
  400. XM.'2BIR97;+ DV9SMJ7DX-;XJX!8^)%"*E.Q?<P"U8 7P%'L8D\YZ,\X:J!7L
  401. XMG]2GJR%HC6+\@G.Q\XA] V=/<.^(""Y.]S''&1A$I8A@5)X'@N$!AA)H+]RI
  402. XMA3J7FJ?)CQ/V-,RG#1D@QBN^%7X!H&$0?:A['W@J HBG;<!WRC6>IW1 >AHW
  403. XMOJ<YJGK:T&0\$,T*,MALFXZGC@E!Y:5Y000AXX1_2(!"=>754E!%)PI'THZ)
  404. XM2^ 0/R)['<SP>-L86L142%4[6D874!@C:(0*9M*SAFQ>H9[:;"; *(,))&XI
  405. XM/_I97>J*0!8H,E4C1A.;GJF!:'.02X5;7"1GMWG.##!!'H 110?> 2WUI)(H
  406. XMAX6,4Z?^J%G)!P?)!*K'P;@D3#PJ%T_/TI81%7@+VV)$UG<PA). =Q!,M]&:
  407. XMJFQT$09,;;ICZI>"Y3FQ@=$8R"6V<(,$ 4NDE#I@-I*3!I C1+24ER+Q]1L8
  408. XM7[G#>M?>W1R;Z/_H%BF1==5J1Q)\H9[00'I?&JE>).VY@<$E%%7MTC#:!VA+
  409. XMB"%/ID-^03T) MR3V9Q#<5 B%0GEY<2GCG_>1F@@ @P(;L L>0<8-- D[<$"
  410. XMU 2EC2ZQ3"D+5L '&3%B"M^#6O30<)A)C5RP3)E;H=>?T%H958@.4K4+@9Z#
  411. XMA0O1BA&!51SE$7!4*X^H&$%OPDWVYK,*^\RI&@;>]#ER4?SBMA=!I VT!\!J
  412. XMV_@Q:^>^FJH,3<>5 /%"](;*E77)T_DQL4UH@*ZJJS& R,I#F:0DJQEZT]4&
  413. XM0U--8@2HK*;J</(=T)Y-0+45'N!/B-'UN <R0<#F _)[#IO^UHDX)T$3S2C@
  414. XM=AAU!6#J8#=J(H_N =**M:)09L--&AS5=MP=2-5M_#9=69=2)AE'18]\=%-:
  415. XM-/G"/8&FMAW8SPQV)EJ1^VF?2%YX!YZ8C)2O=@E@ZM+:Z$R;[LFL<((A+<#F
  416. XMGBA20F@@:,37G50:2%6ED^:=1[H9^I#0, C!&,*W&>& _,,40 @N?/%0D;!P
  417. XM3'"H"M=C+AE^]@E3PIBI9O]='$0)J4\H0!K@ L0)1V*2V 5 (!17;( S#A8&
  418. XMB@CC@RY.'44UZ-P\3.%!K1?G**YZ:\OXM>806BMO9=T5+ER?2\F[)1M3E(:A
  419. XM49PC+,8^]V/0!2Y T8I8U#Y>JQQ0J>@>HA:'8\VY3O <2"!EK')<W#K5G:1_
  420. XM[&?*E#LP:&,%ZR"$ED/,7><ZW0V+F)&7:'CP'LV&:0BEP9[*JISY5:( >,:&
  421. XM *JDJ@H%P3H$V#ADP%^*Q<6AHVFK><C0H8:IY7J'HE;/ P]) GX:V67JMV2P
  422. XM.AE9&?!\*3^W"PU9&C02YTD(TIDP-<KGV/D_4* :V9V$%SV334 R05BN 1+L
  423. XM3T+!:JL,9_-CAQ8/R0$: ,:@B5 !"?B9H5&3VR\SAHE$:HL%"AST+ =BE7HU
  424. XMX)@$J8X)>>Z7TF,4BIHHK>@FJTFKBB2ZR1MR3<";KLA'HBQ,K.FEQG-OWA[Y
  425. XMIG1"5/@+T,:-:6@4C.;!/8ADR:J89Q](BIJBT^O#8SP9DS7%F+$H7HW XHS$
  426. XM) FK=P!X<4FJH_+HH.1A1HNA&[B190H4N*#-HS:<DNKG -D'<H(*EZ(8$WQ]
  427. XM2)*.ER9(C)G1W( ') J++"UVO2DV,TU#5"RN(@4LTLFL)A&TYR0B?_(): IS
  428. XM$!/PL8TERN'5P'AK0.\32Q0'C<5Y(CE5&[%!!G2%D:[T1[/Y)54)=-%_Z%".
  429. XM*)V0+ML@VD;M0P>!.AE6;$%%MZXA :/'YWH%4@A 1_@Y'R0F;X?$MEVR4-NL
  430. XMH#2, @ODD#1"$I@[9X);]CELH]TH3K6,MHBW#":#Q7U'QBR;F,S>%)K$(>@L
  431. XM GJOR#7[]_%?XP(W,2*4,>&+0#B%WE*NQF:((A"TJY=@<= NL]<=UP(BH6@A
  432. XM1#QKL)0E.9^9@V$R8JT5O2(VX6/(P;<G:(P!AV!XH,5T(%>!7Z M)*C)0R45
  433. XMP*X4#<Y50M:(=A1:]ID=E 'D#D6!I;$2UY[D)\,1L$/J)$J.0H](:L8D(G 3
  434. XM2D"> 0?\F$[F]9@]^HU6YQA+1ZHR^$3O0Y'EF5TM8GK5_E%PD:E*2%:U6J1G
  435. XM&@0\HG4),/NT.I*VZA4V^CDK+U%G8X@N%:&D&0JF1H1AP)! OJ!44Y!;VZS"
  436. XMM7A;Z,04Y;,RR_1BUQI-6\)@!S(T,?S!N,!5A4Z,*!;%F&65\PWF1E?"A1RF
  437. XMPV-%=I$0IBE:7K !'P+#ZAU$+&A"\5F3D!D65TE[)J!%*:S[*7$DJZ#:22H>
  438. XM_ I!35>E.#*;+%EZ]AWAB2E>"X@R@AJ3K"E*TFF?4\'PNE00""2=)I$<32;%
  439. XMS9] WQ!XQ<_?Y89%!2G4<V;<+@W(K3<EN1RUR@\(423<MD)'FO20R2#"P6WK
  440. XM. Q;,\-F.XO!A?7"N;'W'%@?2,9H*&"PO1UQMTA 3?3;=F!OC0%Z8N=7BEV9
  441. XM)@?*H6+!MSEH^A =_( E!M%V2^PVW@1Z9AIP$7J*?> 4/'*JPX)R@$P?<(60
  442. XM*HF.HY7*6\O%EI#+0Z  )[R*A4+N,-E*.]&E/.'BBB23!:FP.ABDMLJ\PK>R
  443. XM+L!"OI!XH(:O2\&0!. +^@*3)S%NA5CLLCK5\IAP;1<C)JTC4,&W<#5P,]5J
  444. XM["J:MJ.R2?,S.^@;V-E^M"1)N5D!F0052*:.F>-0]Z@]XF-A>^O!1//53+DV
  445. XM4'[CD>,$*^TI%B?3,P.6J1@1ZK3(*E=M[EX++&0<KU>1*GJ&!I-GZG-,.@[E
  446. XMJ/3X$P:%M--0B)W-N-'!)'MJ$#*@(@37>3TF'.&,-&)4*U/%3-7]!(:99:=K
  447. XMY)T[C@.X8;Z= 12"QH"9](:O2+,7R!@IZI,XJ2EE-L<J81=0OBD,0D%(+\U5
  448. XM :';VN0:L$FGBLO 4AFSTY6@Q_8@/>PO&YA2G16L63J%=K"06:BA9&0(O9_Q
  449. XMD)XMN_E865B,@@D_DUT!HGA>B5H7UYU4(^';5D=BJFS>+6\&X,J0&NS,@-]*
  450. XM4B8B@[KK :!&2B2:3!*[=VD9N>(VE2A#:C-N>A5S .T&S%J=-.[F:?N%#";1
  451. XMV+GK3&14VACZ&Z00(Z?B%+L*=WD * ;K36FWD*FF7MTY^<_,Q/](6"=N%OOD
  452. XMHJK/9,"[':$Y>H >$)I"NV5IGG&60IQ\Y\2Y.@0P=4#+.Q HF7K5%KI4V$.]
  453. XMX\J6IXD[*T*>6^+PN4#N*)C([CFWEZ;7#MVZDL0U<7\@:OYC*).J32\RX,!F
  454. XM 2&]3][BE('J%CM2_8HH-45GDIYRMLH@4\'6R4Z>B:=25H*BU;NZGI*9]1XZ
  455. XMJ0VKT#:0O6;JA"M<L7=+4*YW :&]:$T[=*"&'-H"/H'SZKPZAL0Y[-JRF2GM
  456. XMJ?)*"!\;K?10D;?F)O;87/:Q":^*\L1B.>./RM%%N8+YB@OD+CU@WU'BF4PI
  457. XM '+I8 >+?6TV1"S5DM:RAFY^Z4Q*CX\O'; ]>;67[R=:Z7J-MDW#*]!$0N(!
  458. XMN-'JV&Q#;ZT37,T+^-G">.F@A5;! OB330>DDF8YDLDV%(;NTBF9(LK+\(NG
  459. XMA0N=).P[2"ZV_^XY@3* A7) 9R0&9+E?[>S(]L@B8^VMZGBI(N>O=T?^^IT!
  460. XM%Z-64:8JW(1BB\M6M>.:EOJ<GB8.&UAK3RIH'%^!J:6F=:6M_9I7@ERMCLDU
  461. XM0:V45NS:LD:$=9GE:8NVE",&C .,;-T<[H4!R::6JM[O5]GJ.+Z8;4-U!""U
  462. XM0 H:,N-^J9[8[;A_C M805*+AMP^R&N%<3%^-2 .\TG\<I(M6PB<=#:ZQVY>
  463. XM(!5)!3!5&7 "R\#:0X#IB0*.+/#R5#B^P--!#)P";WAO .Z3M]K F"T.C%3P
  464. XM5$%O6^L#ZYA <,I[P#5K$L]<,=GB3Y5M1Y;7!J?TQTHQ!QQPWR6'-%=0D5=*
  465. XM?5/YF*IAL/0XR5U%NVF(063ZID*FDX8ZZ:-G@UU9RQ:GQZE?"5BV$0T$#  4
  466. XM[ '/Y&>BFL A<$LUB3ZTH^G69V+&>B'5@3)B@J2Q4\D:BUXB._8F.:F("![[
  467. XMIE9 QUHCST[!P 7T <]DKWD<],$HP!]\"=<$O^FQ&5"@J?42A;K]"J11K52!
  468. XM"',,R.DB[%0B-[1GJ[HJW"#);ADP#6IZDZU8ZP*[9C/)E6 #D9B*C:)0)W8F
  469. XM0@_4L@P'+74NX*;LC"?1A/X[^Y:0RG"P.@?(P@"FY7MY<KE.<!UY[WC#P6IP
  470. XM= 6S2KRP,Q6G&BCT,-,"(NE6R>81N+8&NUW!0"B#&49UZ_DBH8((OBX>=5Y^
  471. XMH#!HC2A?>(T]:8L'B()8H"JPLMO4PUI5,&SRIKC@;Q , D0+,P 1@/N^PW=M
  472. XMK?H$_R>Y QA1$F>DGC#I6=*B.Y&J),O[FBDF,9YI+@65ID@15..^Q/5H,H92
  473. XM81#M9I6@8092#X'P*]&*$-65.4Q[DL1$P,\:*)[$2W"KN0:'&M,63IQ/G%DE
  474. XMF8VW5?8[/O&?JJ[,@R>>^X<:O,2/5NRBH"A^GHYW DY.*$6$K9($Z@S9!9@@
  475. XM ^3$^L3) &R!!2("4G',6#'JR9FU.KS$\V#7&TJNPIK0@5M&X!._) <A<LQB
  476. XM-9LP22#4;-#?*ZBP-!OW!,H1**UQ):^3*_L^Q7!"25P$4\53JC1\%3.L>8]%
  477. XM*WDQCA6&&W,7MQUH<5[\!9^\YW!364SF#.MH5P#$7B%FX++9UJ:/MT+(H(X<
  478. XM 6QCL4=4O,1[%(BBB@&GCR0BJ37@(*,-A; /UI4HY0QA6T+!M4%)_#\L@+@-
  479. XM@D%QM%DE4J&*!ARJLVV5$'EP#66G%D+H"I,)GSPZ&U<J(X"Y@^"F++/=I8FG
  480. XMP  E (?D/FR0SR2W>S#BQG#+(AG6_JZ]<4EFRBJRF:Q0@;L.!>#0D0-FF:)<
  481. XM3QG7))V (](FFTA*C _8DCN!\83F4@P:(KDL(F**]SC (&7$(YM(AJWV&_X6
  482. XM+V O*$>C(WO-%D9I5V"3CL+2%]D0WSD\N@0>6T#XQ\>DJ3H"T  P0!@  XP!
  483. XM_BZG$(A$B!9+@609/(5'@898!7"(9YLF>/]5$/7" Q8GAHCBXC]1(\=N;4*[
  484. XM$V;U!#T$N;6W;87?@U91-\ 4P!V21O"QB2RB A=-C7^B(CNEAK$X<JPOFYJ=
  485. XM0^1B##DWU*Y*(I,(-Z6)>;(JAM'6AGIG(+;NOG^)*QBP%=*+.TH1(9,%RC=2
  486. XM31%OL2$3RGZT_"D'#*&R<#->7+QK&Z>])@":XE8H$;2X+4\9 .,BM2!Q$J&]
  487. XM-G0J!*9KXY;*>M98,;\2+W^;WDD1W$:4%3B1 '''+ >32PQZ@>?B^*<AD '@
  488. XM05-CL>6N!RJGO$ H %0B7: "D,J$AZDL*Z?*98"WZ :;*,8@K-P.(K5HUD%5
  489. XM37P:D%H;T<A0KX5BHW J$BD6D?I4('X.5[)*V(FL'.#<F*08TB,*$?JI%(F*
  490. XM63*44#^,%<!:Q%0FP &OV%,J)[H]XLWE=$V4A^X!S9?F,HAF,C;+K=Q&_C%4
  491. XMF0\*%5#E2A&-";42 H!(K2@LG9_>]C=HH?JL;:"N5JG8$'X8C4VO C.67#%Y
  492. XMRNEK G!(PA(P!F-3,1B3"0 Z"C,G -#RBRLKPQBW<3"1 $3,.<.J+&6P<4C:
  493. XMJ'H?H8M751=$]VY'9P.C(;<PD3H#@.*WN1HAKU314:7+"&6F,7%VS-C'TEHU
  494. XMOCNJ+!D !_R@7($KNX\M":6FY_#R]IX5;".9;CG-4<ZU6(PU:9$E) 4GH&[L
  495. XM6:/P*\#-BV_LJZJ$%(;&JYAHB ?_[SRYR-RU;[/6G+A8&E8KJR(^WLVQ;2H<
  496. XM*P_.!4.]ZJE.SHW&XDQ>(6!SP^0[XW1&)D)&" * SL?#[2$Z>\[? 50I.D,!
  497. XM<$(FYBCBQJ(S]Y=$J,[\4*CP86 D4PY4J2Q\FU4H4@PGY*O8PKYJJN8+@/,S
  498. XM*3@W&DF 2;Q"D@&8,*8Q.+\')K&Q:2PIS)4*A%;BP,T7T'V1/*>ZF$F&NY=E
  499. XM%\DS*[,?6T=LB?Q&O^U_\V\GDLX*DRM,?\A.47@$+DO\]%Q%P_.% 2 %44AR
  500. XM4C@AADO1S'+CN0H?UQBQ$1I@=J1!Z>9"' B=<$EUV(:YWNZVU]N&,2;*ZJ"E
  501. XMC4@RA?)"LN8A+%6ZL\+@$R@SRU)L[:!88)#RD^A .*?X4"BT#G #J0%L$:PH
  502. XMU02-*E*+OBU1D;90AG>%O3,0=&I&2Q.3175]3L_T^A,8&-;BX"$<= 4OJ@'C
  503. XMC9(G#70/S,9-I\*15= Z^)R=B3 )7I58)=*X<+0I7QZ5N>M8T$P11U_P$DA#
  504. XMT"RWDQ,Y)?)534(<>M&FP>LS0;-+B22>.S.5$-7.'M'.] I_I7<0OLC1*P$=
  505. XM?0?T5W2T5-0Q+!)[=#_AT$2V.,UJ!$YN1SU!GV"Q"@$8J][,;]:Q_B:TMZ2<
  506. XM4-&#;Q2!=F40[[J,-H"VEULB&X.52''T#]T/]=%V]"+1!@"$@W20JBQXIO(*
  507. XM(\HM_<H4AA-M6<A*PQ@MY2YUB9V0?[H:D*R?S(JP\-YFX:( =M&&4A+O3V"X
  508. XM\-"A!N]".#! /U9?T?&:&@U<T(*(.8.X3H882: <@M8W)<D,+^O!) ASED@/
  509. XM%84:&Q0!8L-_U Q=TCS3W-+B#<0ISW9+*K#0V-D$/8]FB1!K6T>"M6) [^TG
  510. XM5;TY;"MHXMFB3DM4^-/F/*NT"SQE[@C1<<Z+NM!:4AY8'&T$J 2=B$-] Z#2
  511. XM0.I;9S%1J5*5CS>#]@DHLRX]%5S0 <TO.OJA3F'#<J@)33G;'CI-;J$]') G
  512. XMR/&%@H:O@%,<[+QRE<BWKFAOH&/1>7.]751H;0#*8F<SVDWR4=,L/-YH[.,!
  513. XMTS#!6>@@#-6<#JJ4CSR@W]2(<^!P$,H5VU3#!BT>-0'865X),)WR\X#."ILR
  514. XM&7=!B##$PE/P(4"WGV'-R3/2G-=$:3!6#[KV!,AH?^Z?#]C. UX<TRYEF;63
  515. XM/2>I<?\"2M/11L!$_5HB50*%_9E57SN&;&KSK,S5#VC+"DEU@NA/^*)4[])C
  516. XM8$AM:M#5&.;.TU'-E8"01HTA84 BI=FY_G(X,;562U.C15"UR,<AX:#E 5P!
  517. XMBQ80S+1P! $N#SFH_E=/7XM/S]=33BTH[9<,^EE#@.0T>$ 5Q0;A-*Z2 ,DO
  518. XMX@L.$]IH!:GQO+O&'<GYLX2($RT!14 6 /OD-9!(H>;AG">OF >6+TIMYC*Z
  519. XM:-/-MS!833$BX$:5T[ EW1JZD3+2G'2,"R!U_K5A*+]]Q<<D4TAB-:(5:2+"
  520. XM!$<LJ?*W4H12Q](Z?ZT(<3(I8KCR8-=.@5TO[-?EWF?GQP :IXI.&ZZX%SU*
  521. XM*X8>O@8/]KL0N^ PYY96D&%[UQ,AH-1F@0$KP G@X(090D=8G3.Z.%95FD5?
  522. XMAQI& $*SZ3D:1L!"<RD-N*5T"V $T #A(0QF*8J4*+/IR#*_S0E-CKP"C
  523. XMM8ZS8Z\ ?G3XL@)4.T*S0\?&W6):-80]\9$*OV$<=OETV*R!!JIA<,TF"8&F
  524. XMGC6'ID/7 !(F:8V")$-NO95BMGZ!'&*J1%) 2F9[/%7VNW".%"I-=DP@.@^ 
  525. XMHG.2#0+TV12%> !H"]IS@['S,XK.HM'IS$V\!N9'O"H7( 'ZHYG-QD%V:^*;
  526. XMF*K\Q7PGNVLU\HA&"E1A)P>),6*;_!\:B1DCDM@GFQ_E"+H5&A#4T2H9,*T^
  527. XM#0CL$@.\AJ)@!DGR%,D[;F6$QV(XSI8Q PD"L-KXP:MM?QV3/&>JW69=D.,?
  528. XM>^Q*5*]RV:&(+(]Q*_;04R,JV.-,>,/_&0_ZDY8&-(J4*YB4N&=@K]0)D:TI
  529. XM MO2ZB#'6A37478S=+C:%S("1!NCG8@B:87=9MT7C)A-)9-QUPV3K20SU1(V
  530. XM<L/C7T@QL%1Z+099)M$.%J4NCGJYC]U"\L6+8,"\6+*<:6S =V)OYP?PK]"!
  531. XM^%4>6!21$K%>-&$G"!N",1RUC7C12I*>EV6J,SXES$M,I>(_WD@N]'G1-KRB
  532. XMG]_$XX'IK!PW%[IJTRP%M;!]%O"2H%T)(:^F.:*PJ5$CKQ7,S[AJ\31?3+/9
  533. XM\"$.S-;TB)B_Z4^(! K !+"KP?59E (\$K"J"$%IG%&U1?_"A?$QYL2V.=?>
  534. XM$E$W;8U-;W-^I=FMD% (14#D=77_$5(<*Q95+(\C[\/X(F$)7#=!QD2YA]7Q
  535. XMN09)*-91]R?V2-2^6_= 1J.P/@9#$$ &K)Y1=QR].29/;[>.XJT=TK 2@KD?
  536. XM1=-AS6L#MLD-M%OC34<+WG!WVA9R6I8Q&&.&>9,$4*\YH5RZ+;!NU/T#4 A)
  537. XM=@OP T3>:!O$"^LR9FTO9.'= J.A2_TG-U0!-4;4S4VT !XU[2U5\1/MLY5F
  538. XM,+0;:D_4O?L0WT*U\0T(<4#)MYYC,&2B%6W4?9X6WX^$5/6@5M^MVO0@</*,
  539. XM4?=[RGW#W5+5T+FU6%+F1%9;' #?0,$=@0+XV</W^0T:'-^X"F"[+QD,[C<<
  540. XMP'SW"5&WG_U\V]^&[7?24NO?513_K=5BWS%! /Y2;]_1=_<-"#VH]NR_5'CT
  541. XMW^/WQNF ;SC!DLU)@*??]F<%OG_+#5* 5##YCFY1-].DP4H!N*($?L-@F,I;
  542. XM@IEWQP1+->$F%;3=^4'4C8-3"%) #)"HN."_8S["IY5#IW<-OGP;%"=X RY_
  543. XMQ]XJ>)T#A"/*V6%7:%"$W08%#AY_)P'S-\?7 N#@TO<+SN8-X6##%&XP(%Y7
  544. XMGY^]@;<]+< 6T(4'X;U;N'B.7=]O AU@AB_A6OCM^H37U7$X^XVP12-%P''@
  545. XM0ESA_5*; 'MKX02<&+"&OW_E&(9@?>=LQB :W8?'M$HX%IYGMP"%^"#.@=?1
  546. XM?S0EWB8<X@_8!(I&Z^%R0\_J>2\23$ +_D=LJT!;Z&>'0;T6C? 8C/K>TT/K
  547. XM+7_WAI$W*BYZ^SJN;DQP>Z-.N7>FYYJ!>.9$Z_1B!M]T^"7.!%AO= 0JOCD^
  548. XM>+#@A(>R=3$CIJ;'5N&&,$PG OKQ=Y'C'8-A7H(EEJ:I" +CI$;*0+(,XPG,
  549. XM>XF]@08::XU)+K3"YL0T*.J1XV>X+"( T@"U^#T)+3L]Y-T'C-Z%W)W(9&RB
  550. XM*)CF9:DQCD>.RSBE9_?NE^EXLQ-)%QX_JY YB@N -4 ]7GMW0KVXF3G_W38?
  551. XM'- ZAF,MS1J ]>(]Y).X&B"1)TWCC;/"L,9YTWA"8DY<T71 %@V(Q]%^8S)^
  552. XM3]9IY^-5AV$FXJFKJK89YDKL3F/SC8IZBI^#,U,5-Y,+!%7>L$3 5FNFV&BW
  553. XMT7$ZK:1T4>=K4)X>U!?;WA.PB]85^X*@J//DX884O*P7?G!KLDN['^'D"/-*
  554. XM(*EMY4;"5CB$[:(8(W=0(?>XZBA6!RZFY;A4V-:(^QTN.4B>8\?DI_A,7JPF
  555. XM&[(?ANF)^QTYN2<4CG^)+'D6K>RLX[P1L8IVR554C(N[TS8VYD3D>QQ\?R\Y
  556. XM'4T'2.0T.>]-/+Y_@WGBT+44M^'41?[K[>%7T>OSD#>R,GD!SH:79\I7@8,Z
  557. XMI0=GD.$3'41&MY?N G-\=K>52_N$\7DT$#?1WF9W-YZ]&Y5+93;I4 X?57[B
  558. XM=(LQ**>?=GD7[7>HYO)W'#V)L^9]N6L.FM_EHOD!M&%\*[9Y<,1@6VZH@?;!
  559. XMCW*JP/E:.YSSY,6YKG><XY;*&U&.-NA//"UT+C=8YF4 %  F1-V&ME_Y>#L'
  560. XM$CE^#JW5)?(=EU(.N8*[MVGN"\H- X*< 17 TTC50ZX'!.B[*M9*EFT3#GJ 
  561. XMBJ'IQ_'OT\$Q@*G$$(0^6V&K:YSX[9.B#R)Z9KY(3.(3>FL^4IPF'/J0<I87
  562. XM7Q8ZAM[X9$4N6QVPQ+#D%NM#'@=(Y 4C8=WU."4)M@F[D3%<ATP8W8K7Y/0@
  563. XMDMOK@)<5-^'6V,YB#[D1@ -(Y//<^[&\98.]-F .BX,&AZ2*KF-'Y*UY9W[;
  564. XMV#Q%J575I[E%%UOC4UR1"E4Z,IZ="^BF4N/3FL9*W/"!SJ4GZ*>YW+!,P3G>
  565. XM5)7^@\_ID_=\O2'X:R,;OU;[(.H &X&NIV,2%GF?/CW,;&*Z$9 #2.24.L,:
  566. XMJ2_HTT,B^AI4Z1:!1.Z5SF*F$K(JWZVUN2"?SJF#!OYQYUV=D]*9>!L@D=_B
  567. XMH)1*(=JJ0 9#ZN.J8^&A]*P.\3*L1,AGNZ=OVJN,.2%55>DV &?^EZ?JQ+JD
  568. XM#AJ,QE6Z*7ZGV./]-!6WJ==U!L/0]*;GY]2X5A!UE^(!>J%>I[NEVA">3ITZ
  569. XM+@6HV8"2WX8JN=S6V5@BB)2W+G\S 61Z=JY%4G'K^A[4K8<+T8%)$SSD7GO*
  570. XMFFX67,>)'W(^,<7K5%P#L63XZQ#31I'<><% 5'2=)._/T$S^H&.5'C26NW9C
  571. XML1X<7="5[_%,;) =ED3_/-$!=O)^:)9'-.6TS^3D32V@&J[M1Q>VATVS'&?R
  572. XM!,@W)7@'VTLD@4BIXEKBEL!.2;=D49GPH4L=,;M6?4;HA#(C:+<ZH,G)F\5C
  573. XM:2<=F'8<I&E7?CVBIXV:@=K%@:A=)!8J?/*2B&J/JJJV+@$;E=E?N[P=IN;+
  574. XM:;5?"*&@-G?5L[V[FBN10HWHX)C)[)079%5IMOM"A& 8<MD_-E$3):J$[)\+
  575. XMD+VVS)KBV.[QN #+ P)55D 94L:.8D6N#CPUS]T(W0G_M8C=@W%M1?N'K2RL
  576. XMVXW8JE%APMLQA=GN[ST'C%C1_H0-W6#K;>Z&528WK-R@X8 /)WL\GA#0WJ\[
  577. XMB]-%M7BQ07,]LENMT1B\W/GD.&V'Z./VA%I4CMQPY/)KM<&WW@A2"%%HZR0=
  578. XM/P@U (7 \90!7\ (HTD,"[3WCL+GQ>Q\+6CBI/N\V)Z#<.ZP)#G,TB&IAHHA
  579. XM92Q1RR#=3)"H1[YWV%7*W)*'4#!UMYW!*X9#!.26L"KF$%_>])+.KJ;N^Y<]
  580. XM9\]'20>84"Z,;ZKW"I$\ >)Y-NWMW@ZZPRU<=$%4Z&,9_ E0'(,8SU]PZ.H2
  581. XMB6X_>*U9GTL%%SR@,D\T>@4_O5C$<E5V(:#6&7E6T0XN9#L7U*R@=NM_Z9$>
  582. XMH#ARH9]1F5W6L$D8I'!HHBON@'A_[L!#4CKP%U,< ?$7;&':1.WCMX1JG1ZT
  583. XM<+B$?3X])$U$JNS.!M#>29.MF6LA8JI;P&5.<$83CXI.>X\*G1 8[QF9[@3,
  584. XMVHGJ/F .[P3-#V5H-YJUQ#R!&ZNG'$\A^Z/Z3B<R%]_/$KO^C!,9!59 $C"V
  585. XM.0'T#$,W/>0/$1+_X#](P^/"4?05GL_R];GB%UBXP?BEPCH- ;,:%9 %% 67
  586. XM/.)&&>AO1T 1T,EK!CN!N5@;[%G_*..*'_8C'/1?!$FY*$!*$X-*K@X("#^4
  587. XM+^@SD#AEBID4*8,,;>H>&-(M9BELG,2QJ?#X DFSXVT4:/!FQ5E(E#2,:8XQ
  588. XM+7%6$QN AFU;FB N08A]?(X0&2QN4?+T4,0=<4F<RJ44_2"(A N @/ 1CX3<
  589. XM\,WO!.'\$C?.STULS\X4T4)->D.0E1_XQW0<P$%ME^B@ 0GPA3!61AP[+S"^
  590. XM .)\IE7.G_-91SKOS?_SP$9 C\0-] 4]S!G/_[HRW?*(S]-N^[PYL<XC<4J<
  591. XM",?$\6@RU33EU#Y"E^H&]W[D$!!"L<EJ;+N8FW/-QV?SGT=D0 5<8Y/!<\<L
  592. XML58)=!C"F_VJA<+!?3:P'B8 %1 W$&H[RFWP^A1;.ST5T]/+G#<2JCF3# OD
  593. XM@:)@&BSCFH2=Z(M,<CS-Q7 &"*F$&K=()R7UV\%2KX.D&8Y'T9J'BE!52@0Q
  594. XM'T?L,+WG$1G,;:6'4= A-D,E^&01'.@XDH& (3NY $A A[(_E;F?5=#2,!((
  595. XM:ASNI\"C:O3'*I<Y_PI'D;* ,XS-ZG<,D /@ #D !38=./4H6%3?UU'U Q1Z
  596. XMA-6G9EH]3A-.1 6(PQ^NXB@)T=B1I/;(?]!H$Y"*@1H4QFWPNHL0:4"><0?5
  597. XM-/>!3):'''>)WBB"JI2U>1W+<13]L\^!439!I!0K4&O5&76D-$ZTH!5$$%O"
  598. XM$R].T=?: JTZ*KH'CWT>$-E/]CF V8N1;3PY9)' JJ7U<$5'A?\5,RW %4 F
  599. XM' <F0@NT=I!@4$4O>RA0"&H]!#$%" &= 0S0 A2:,4 +4 /( #. #5 #^/?)
  600. XM?4Z/'2SWLX.VX-S_]7* =$\[;@G.2+8@'EA%6!&J@N8(W-4]W4[E.)T5K41 
  601. XM$:  S(2)8!%0"))]#M"".O8B@G9O?Y;XCO">,@W>6PQ^A"]AKT 68R1QJ"0J
  602. XM'R%;W];?&I$!KW$$1(4[BJ0\%4<%HF0YLIE KCD/^(!BW+;CM:'5_C5'J%_3
  603. XMTJK\KJ<BO#S1@J.I:VEPI-UHAE;J5S[D#A9'L&99R+>GT?2+AHG/-XO!E;6G
  604. XM&DB*\O(%.EY>^5X7__TR%X;"H/5P2:^@UP%M9D5$A?.R!E9J$/0>VG8XRLRA
  605. XM1F.WAA@^&G!8)-#$O^.;+V9]=.TB1F/GRSZEZF$>S+NQ!"OL(U=>U$3S=(#0
  606. XM=;;!$V-VT1\[?5:Z>V9XE_7%3])2JROQ<YH:$YQ6AQIT0.YV? (N-\62 !5M
  607. XM%K#>O$V4S\V2X4'15*,GI(9Q>V>55+^";9((<FIT4":8'7UO_>H:!"UB*YSR
  608. XM87 7/)K9_%X4*G@ &? 37&V@QK4K.>OZK!S\D@T)N*'&KY\=-?L]TK,OOLA<
  609. XMTU&QC!ZE^A_HJD];S+^Y>\S"HRD6^X6^M/75 4../:&\Y1"U^B.OURHM7]1Z
  610. XMH= V#@%LQPQNO"NQS0^$'%%Y64'4A:(]J*LNW,HUU?K4<8DE[.\,FBZCX%L#
  611. XM''P1K[<>;DQ@@C#)=>HJ-QH^ >M/@JV^+29-0/B-!0 :&^#09\-1] (<;7P-
  612. XM)I( ]6525+F\5Z,A&2<N^(. VY\R0B?0[6Q40,^&&70L\/[NT^K/[>JK0Q=.
  613. XMN,'VVP4E_T9=Q('4-[DM/L20UU%B"&L2'UC#& 4*-+XZR-RR%\C^3)/(Z"YU
  614. XM0Y?\DV"V[E*XW)T1@ 5UA=!(I]@8P]NNHB"C=C^GJFU+\I=XC$W)KA3P[RXA
  615. XMTUCD?K;I3EFP0W^">?(4I&\WDN[7B33OH"#WWF^],+SU:27 <]G!19]PP,\@
  616. XMHC.1M1Q8&AQ,X0_4,EOESD-C&3G65UW ;0&=_AF"AU#VZT6C 6'8L/H@"B* 
  617. XM08742^OW9P*EK"[I!\L!CL89Z7MDV/%[LZC7A(*C@(0WBG&BAEUBU^*VET6[
  618. XMKZA*%3T=-/^N2'7!ZX:W2I&7)K'H%_]:!D7]3PG@A=YU!DGMN4\8':KY./J1
  619. XM*K/\LW$>^VC09XF2(1W!#YJ!&72.P!8%0Z6? R41L(1WG#MN$@UJ1_,EL?^-
  620. XM9P)")1E&#"6AS3&N$*O-W<H(1P6%U$1JJL!/J0C(-/(M>Y@!Q8MBUE'0H &0
  621. XMDE "+A>2R]8H10&J,/O-_U1=U8*25OZ'BJ.\"H#)Z)X3UKN&1=XL1?'["VIX
  622. XMEN0J+4#(7\?LH27W$B! '[HU\@2IC]X!."1E\L,1J!0+3053E"7KX.&7 (<Y
  623. XM6IQ_<082Q@QP+<3]:P%@_VX/#Y@KX'&  :A(>%$1SZR &D $Q,P-Y70S(69$
  624. XM$O1_R0::E'PJ#$B%L.RD7\(XAI'R4MUI7U#Z^A40S\I4!JJ$2';D12.4ZW6L
  625. XM#NZ B1*7 (8G,I(40_VI6W 3,9%T$.U/6L3LP4PD0\X'+)A?E:V"3(8O0Y-)
  626. XM- 8@:Y_<0;O,[7$N<SJX3(1#X[) 2,3"-8(C*U3@C=8%D*(^6]X($_5?R@\T
  627. XIVIX&NH3C4O=G]?9%.Y<AA(QC ;R8U.Z&&M0(@BJ0K(1 :;^VS@=!60!?
  628. Xend
  629. END_OF_FILE
  630. if test 36913 -ne `wc -c <'olwm.man.Z.uu'`; then
  631.     echo shar: \"'olwm.man.Z.uu'\" unpacked with wrong size!
  632. fi
  633. # end of 'olwm.man.Z.uu'
  634. fi
  635. if test -f 'properties.c' -a "${1}" != "-c" ; then 
  636.   echo shar: Will not clobber existing file \"'properties.c'\"
  637. else
  638. echo shar: Extracting \"'properties.c'\" \(15731 characters\)
  639. sed "s/^X//" >'properties.c' <<'END_OF_FILE'
  640. X/*      (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents
  641. X *      pending in the U.S. and foreign countries. See LEGAL_NOTICE
  642. X *      file for terms of the license.
  643. X */
  644. X
  645. X/* 
  646. X * properties.c
  647. X */
  648. X
  649. X#ident    "@(#)properties.c    26.7    91/09/14 SMI"
  650. X
  651. X#include <errno.h>
  652. X#include <stdio.h>
  653. X#include <X11/Xos.h>
  654. X#include <X11/Xlib.h>
  655. X#include <X11/Xutil.h>
  656. X#include <X11/Xatom.h>
  657. X
  658. X#include "olwm.h"
  659. X#include "win.h"
  660. X#include "mem.h"
  661. X#include "properties.h"
  662. X
  663. X/***************************************************************************
  664. X * external data
  665. X ***************************************************************************/
  666. X
  667. Xextern Atom AtomWMClass;
  668. Xextern Atom AtomWMState;
  669. Xextern Atom AtomWMName;
  670. Xextern Atom AtomWMIconName;
  671. Xextern Atom AtomWMNormalHints;
  672. Xextern Atom AtomWMHints;
  673. Xextern Atom AtomProtocols;
  674. Xextern Atom AtomWMTransientFor;
  675. Xextern Atom AtomColorMapWindows;
  676. Xextern Atom AtomDecorAdd;
  677. Xextern Atom AtomDecorClose;
  678. Xextern Atom AtomDecorDel;
  679. Xextern Atom AtomDecorFooter;
  680. Xextern Atom AtomDecorHeader;
  681. Xextern Atom AtomDecorIconName;
  682. Xextern Atom AtomDecorPin;
  683. Xextern Atom AtomDecorResize;
  684. Xextern Atom AtomDeleteWindow;
  685. Xextern Atom AtomPinIn;
  686. Xextern Atom AtomPinOut;
  687. Xextern Atom AtomSaveYourself;
  688. Xextern Atom AtomTakeFocus;
  689. Xextern Atom AtomWinAttr;
  690. Xextern Atom AtomSunWindowState;
  691. Xextern Atom AtomLeftFooter;
  692. Xextern Atom AtomRightFooter;
  693. X
  694. X/***************************************************************************
  695. X *     GetWindowProperty
  696. X ***************************************************************************/
  697. X
  698. X/*
  699. X * GetWindowProperty - wrapper around XGetWindowProperty()
  700. X *    Returns NULL on a variety of error states; no such property,
  701. X *    not requested type or format.
  702. X *    Returned memory should be free'd with XFree() since it
  703. X *    is allocated by XGetWindowProperty() internally.
  704. X */
  705. Xvoid *
  706. XGetWindowProperty(dpy, w, property, long_offset, long_length, 
  707. X            req_type, req_fmt, nitems, bytes_after)
  708. X    Display *dpy;
  709. X    Window w;
  710. X    Atom property;
  711. X    long long_offset, long_length;
  712. X    Atom req_type;
  713. X    int req_fmt;
  714. X    unsigned long *nitems;
  715. X    unsigned long *bytes_after;
  716. X{
  717. X    int status;
  718. X    unsigned char *prop;
  719. X    Atom act_type;
  720. X    int act_format;
  721. X
  722. X    status = XGetWindowProperty(dpy, w, property, long_offset, long_length,
  723. X            False, req_type, &act_type, &act_format, nitems,
  724. X            bytes_after, &prop);
  725. X    if ((status != Success) || (act_type != req_type)) {
  726. X        *nitems = 0;
  727. X        return NULL;
  728. X    } 
  729. X    if ((req_fmt != 0) && (act_format != req_fmt)) {
  730. X        XFree((char *)prop);
  731. X        *nitems = 0;
  732. X        return NULL;
  733. X    }
  734. X    return (void *)prop;
  735. X}
  736. X
  737. X/***************************************************************************
  738. X *     Property Filter Functions
  739. X ***************************************************************************/
  740. X
  741. X/*
  742. X * PropListAvailable - returns a set of flags representing the properties
  743. X *    available on the passed window.
  744. X */
  745. Xint
  746. XPropListAvailable(dpy,win)
  747. X    Display    *dpy;
  748. X    Window    win;
  749. X{
  750. X    Atom    *atomList;
  751. X    int    i,count,retFlags;
  752. X
  753. X    atomList = XListProperties(dpy,win,&count);
  754. X
  755. X    if (atomList == NULL || count == 0) {
  756. X        if (atomList)
  757. X            XFree((char *)atomList);
  758. X        return 0;
  759. X    }
  760. X
  761. X    retFlags = 0;
  762. X
  763. X    for (i = 0; i < count; i++) {
  764. X        if (atomList[i] == AtomWMClass)
  765. X            retFlags |= WMClassAvail;
  766. X        else if (atomList[i] == AtomWMName)
  767. X            retFlags |= WMNameAvail;
  768. X        else if (atomList[i] == AtomWMIconName)
  769. X            retFlags |= WMIconNameAvail;
  770. X        else if (atomList[i] == AtomWMNormalHints)
  771. X            retFlags |= WMNormalHintsAvail;
  772. X        else if (atomList[i] == AtomWMHints)
  773. X            retFlags |= WMHintsAvail;
  774. X        else if (atomList[i] == AtomProtocols)
  775. X            retFlags |= WMProtocolsAvail;
  776. X        else if (atomList[i] == AtomWMTransientFor)
  777. X            retFlags |= WMTransientForAvail;
  778. X        else if (atomList[i] == AtomColorMapWindows)
  779. X            retFlags |= WMColormapWindowsAvail;
  780. X        else if (atomList[i] == AtomWMState)
  781. X            retFlags |= WMStateAvail;
  782. X        else if (atomList[i] == AtomWinAttr)
  783. X            retFlags |= OLWinAttrAvail;
  784. X        else if (atomList[i] == AtomDecorAdd)
  785. X            retFlags |= OLDecorAddAvail;
  786. X        else if (atomList[i] == AtomDecorDel)
  787. X            retFlags |= OLDecorDelAvail;
  788. X        else if (atomList[i] == AtomSunWindowState)
  789. X            retFlags |= OLWindowStateAvail;
  790. X        else if (atomList[i] == AtomLeftFooter)
  791. X            retFlags |= OLLeftFooterAvail;
  792. X        else if (atomList[i] == AtomRightFooter)
  793. X            retFlags |= OLRightFooterAvail;
  794. X    }
  795. X
  796. X    XFree((char *)atomList);
  797. X
  798. X    return retFlags;
  799. X}
  800. X
  801. X/*
  802. X * Property availability control
  803. X */
  804. Xstatic struct {
  805. X    Window    win;
  806. X    int    flags;
  807. X} propAvailable;
  808. X
  809. X#define PropAvailable(w,f) ((propAvailable.win == None) || \
  810. X                (propAvailable.win == (w) && \
  811. X                 (propAvailable.flags & (f))))
  812. X
  813. X/*
  814. X * PropSetAvailable - sets the property read filter for that window
  815. X */
  816. Xvoid
  817. XPropSetAvailable(dpy,win)
  818. X    Display    *dpy;
  819. X    Window    win;
  820. X{
  821. X    propAvailable.win = win;
  822. X    propAvailable.flags = PropListAvailable(dpy,win);
  823. X}
  824. X
  825. X/*
  826. X * PropClearAvailable - turns off the property read filter
  827. X */
  828. Xvoid
  829. XPropClearAvailable()
  830. X{
  831. X    propAvailable.win = None;
  832. X    propAvailable.flags = 0;
  833. X}
  834. X
  835. X
  836. X/***************************************************************************
  837. X *     Property Get Functions
  838. X ***************************************************************************/
  839. X
  840. X/*
  841. X * PropGetWMName - gets the WM_NAME property
  842. X */
  843. XBool
  844. XPropGetWMName(dpy,win,winName)
  845. X    Display    *dpy;
  846. X    Window    win;
  847. X    char    **winName;        /* RETURN */
  848. X{
  849. X    char    *name;
  850. X
  851. X    if (!PropAvailable(win,WMNameAvail))
  852. X        return False;
  853. X
  854. X    if (XFetchName(dpy,win,&name) == 0)
  855. X        return False;
  856. X
  857. X    *winName = MemNewString(name);
  858. X
  859. X    XFree(name);
  860. X
  861. X    return True;
  862. X}
  863. X
  864. X/*
  865. X * PropGetWMIconName - gets the WM_ICON_NAME property
  866. X */
  867. XBool
  868. XPropGetWMIconName(dpy,win,iconName)
  869. X    Display    *dpy;
  870. X    Window    win;
  871. X    char    **iconName;        /* RETURN */
  872. X{
  873. X    char    *name;
  874. X
  875. X    if (!PropAvailable(win,WMIconNameAvail))
  876. X        return False;
  877. X
  878. X    if (XGetIconName(dpy,win,&name) == 0)
  879. X        return False;
  880. X
  881. X    *iconName = MemNewString(name);
  882. X
  883. X    XFree(name);
  884. X
  885. X    return True;
  886. X}
  887. X
  888. X
  889. X/*
  890. X * PropGetWMClass - gets the WM_CLASS property with the class and instance 
  891. X *    strings.
  892. X */
  893. XBool
  894. XPropGetWMClass(dpy,win,class,instance)
  895. X    Display    *dpy;
  896. X    Window    win;
  897. X    char    **class;        /* RETURN */
  898. X    char    **instance;        /* RETURN */
  899. X{
  900. X    XClassHint    classHint;
  901. X
  902. X    if (!PropAvailable(win,WMClassAvail))
  903. X        return False;
  904. X
  905. X    if (XGetClassHint(dpy,win,&classHint) == 0)
  906. X        return False;
  907. X
  908. X    if (classHint.res_name) {
  909. X        *instance = MemNewString(classHint.res_name);
  910. X        XFree(classHint.res_name);
  911. X    }
  912. X
  913. X    if (classHint.res_class) {
  914. X        *class = MemNewString(classHint.res_class);
  915. X        XFree(classHint.res_class);
  916. X    }
  917. X
  918. X    return True;
  919. X}
  920. X/*
  921. X * PropGetWMHints - get the WM_HINTS property
  922. X */
  923. XBool
  924. XPropGetWMHints(dpy,win,wmHints)
  925. X    Display        *dpy;
  926. X    Window        win;
  927. X    XWMHints    *wmHints;
  928. X{
  929. X    XWMHints *prop;
  930. X
  931. X    if (!PropAvailable(win,WMHintsAvail))
  932. X        return False;
  933. X
  934. X    if ((prop = XGetWMHints(dpy,win)) == (XWMHints *)NULL)
  935. X        return False;
  936. X
  937. X    *wmHints = *prop;
  938. X
  939. X    XFree((char *)prop);
  940. X
  941. X    return True;
  942. X}
  943. X
  944. X/*
  945. X * PropGetWMNormalHints - get the WM_NORMAL_HINTS property.
  946. X *
  947. X *    preICCCM is true if we got a short/old property as indicated
  948. X *    by a supplied flag of PWinGravity (added by ICCCM)
  949. X */
  950. XBool
  951. XPropGetWMNormalHints(dpy,win,sizeHints,preICCCM)
  952. X    Display        *dpy;
  953. X    Window        win;
  954. X    XSizeHints    *sizeHints;    /* RETURN */
  955. X    Bool        *preICCCM;    /* RETURN */
  956. X{
  957. X    long        supplied;
  958. X
  959. X    *preICCCM = False;
  960. X
  961. X    if (!PropAvailable(win,WMNormalHintsAvail))
  962. X        return False;
  963. X
  964. X    if (XGetWMNormalHints(dpy,win,sizeHints,&supplied) == 0) 
  965. X        return False;
  966. X
  967. X    if (!(supplied & PWinGravity))
  968. X        *preICCCM = True;
  969. X
  970. X    if (!(sizeHints->flags & PWinGravity)) {
  971. X        sizeHints->win_gravity = NorthWestGravity;
  972. X        sizeHints->flags |= PWinGravity;
  973. X    } else if (sizeHints->win_gravity == 0) {
  974. X        sizeHints->win_gravity = NorthWestGravity;
  975. X    }
  976. X
  977. X    return True;
  978. X}
  979. X
  980. X/*
  981. X * PropGetWMProtocols - get the protocols in which the client will participate.
  982. X *    Convert the individual atoms into protocol flags.
  983. X */
  984. XBool
  985. XPropGetWMProtocols(dpy,win,protocols)
  986. X    Display    *dpy;
  987. X    Window    win;
  988. X    int    *protocols;
  989. X{
  990. X    Atom    *atomList;
  991. X    int    i,count;
  992. X
  993. X    if (!PropAvailable(win,WMProtocolsAvail))
  994. X        return False;
  995. X
  996. X    if (XGetWMProtocols(dpy,win,&atomList,&count) == 0)
  997. X        return False;
  998. X
  999. X    *protocols = 0;
  1000. X
  1001. X    for (i = 0; i < count; i++) {
  1002. X        if (atomList[i] == AtomTakeFocus)
  1003. X            *protocols |= TAKE_FOCUS;
  1004. X        else if (atomList[i] == AtomSaveYourself)
  1005. X            *protocols |= SAVE_YOURSELF;
  1006. X        else if (atomList[i] == AtomDeleteWindow)
  1007. X            *protocols |= DELETE_WINDOW;
  1008. X    }
  1009. X
  1010. X    XFree((char *)atomList);
  1011. X
  1012. X    return True;
  1013. X}
  1014. X
  1015. X/*
  1016. X * PropGetWMTransientFor
  1017. X *
  1018. X * Get the WM_TRANSIENT_FOR hint.  If the property exists but has a
  1019. X * contents of zero, or the window itself, substitute the root's
  1020. X * window ID.  This is because some (buggy) clients actually write
  1021. X * zero in the WM_TRANSIENT_FOR property, and we want to give them
  1022. X * transient window behavior.
  1023. X */
  1024. XBool
  1025. XPropGetWMTransientFor(dpy,win,root,transientFor)
  1026. X    Display    *dpy;
  1027. X    Window    win;
  1028. X    Window    root;
  1029. X    Window    *transientFor;        /* RETURN */
  1030. X{
  1031. X    Window    transient;
  1032. X
  1033. X    if (!PropAvailable(win,WMTransientForAvail))
  1034. X        return False;
  1035. X
  1036. X    if (XGetTransientForHint(dpy,win,&transient) == 0) 
  1037. X        return False;
  1038. X
  1039. X    if (transient != 0 && transient != win)
  1040. X        *transientFor = transient;
  1041. X    else
  1042. X        *transientFor = root;
  1043. X    
  1044. X    return True;
  1045. X}
  1046. X
  1047. X/*
  1048. X * PropGetWMColormapWindows -
  1049. X */
  1050. XBool
  1051. XPropGetWMColormapWindows(dpy,win,wins,count)
  1052. X    Display    *dpy;
  1053. X    Window    win;
  1054. X    Window    **wins;
  1055. X    int    *count;
  1056. X{
  1057. X    if (!PropAvailable(win,WMColormapWindowsAvail))
  1058. X        return False;
  1059. X
  1060. X    if (XGetWMColormapWindows(dpy,win,wins,count) == 0)
  1061. X        return False;
  1062. X
  1063. X    return True;
  1064. X}
  1065. X
  1066. X/*
  1067. X * PropGetWMState -- get the contents of the WM_STATE property.
  1068. X *    The first datum is the state (NormalState/IconicState/WithdrawnState)
  1069. X *    and the second is the icon window
  1070. X */
  1071. XBool
  1072. XPropGetWMState(dpy,win,state,iconwin)
  1073. X    Display    *dpy;
  1074. X    Window     win;
  1075. X    int    *state;            /* RETURN */
  1076. X    Window    *iconwin;        /* RETURN */
  1077. X{
  1078. X    unsigned int nItems,remain;
  1079. X    int    *data;
  1080. X
  1081. X    if (!PropAvailable(win,WMStateAvail))
  1082. X        return False;
  1083. X
  1084. X    data = GetWindowProperty(dpy,win,AtomWMState,0L, 
  1085. X            LONG_LENGTH(int)+LONG_LENGTH(Window),
  1086. X            AtomWMState,32,&nItems,&remain);
  1087. X
  1088. X    if (data == NULL) {
  1089. X        *state = NormalState;
  1090. X        *iconwin = None;
  1091. X        return False;
  1092. X    }
  1093. X
  1094. X    if (nItems > 0)
  1095. X        *state = data[0];
  1096. X    else
  1097. X        *state = NormalState;
  1098. X
  1099. X    if (nItems > 1)
  1100. X        *iconwin = (Window)data[1];
  1101. X    else
  1102. X        *iconwin = None;
  1103. X
  1104. X    XFree((char *)data);
  1105. X
  1106. X    return True;
  1107. X}
  1108. X
  1109. X/*
  1110. X * PropSetWMState - writes the WM_STATE property
  1111. X */
  1112. Xvoid
  1113. XPropSetWMState(dpy,win,state,iconwin)
  1114. X    Display    *dpy;
  1115. X    Window     win;
  1116. X    int    state;
  1117. X    Window    iconwin;
  1118. X{
  1119. X    unsigned long data[2];
  1120. X
  1121. X    data[0] = state;
  1122. X    data[1] = iconwin;
  1123. X
  1124. X    XChangeProperty(dpy,win,AtomWMState,AtomWMState,32,
  1125. X        PropModeReplace,(unsigned char *)data,2);
  1126. X}
  1127. X
  1128. X#define OL_WINDOW_STATE_LENGTH (sizeof(OLWindowState)/sizeof(unsigned long))
  1129. X/*
  1130. X * PropGetOLWindowState - reads the _SUN_WINDOW_STATE property
  1131. X */
  1132. XBool
  1133. XPropGetOLWindowState(dpy,win,winState)
  1134. X    Display        *dpy;
  1135. X    Window        win;
  1136. X    OLWindowState    *winState;        /* RETURN */
  1137. X{
  1138. X    OLWindowState    *newState;
  1139. X    unsigned int    nItems,remain;
  1140. X
  1141. X    if (!PropAvailable(win,OLWindowStateAvail))
  1142. X        return False;
  1143. X
  1144. X    newState = GetWindowProperty(dpy,win,AtomSunWindowState,
  1145. X        0L,OL_WINDOW_STATE_LENGTH,XA_INTEGER,32,&nItems,&remain);
  1146. X
  1147. X    if (newState == NULL)
  1148. X        return False;
  1149. X
  1150. X    if (nItems != OL_WINDOW_STATE_LENGTH) {
  1151. X        XFree((char *)newState);
  1152. X        return False;
  1153. X    }
  1154. X
  1155. X    *winState = *newState;
  1156. X
  1157. X    XFree((char *)newState);
  1158. X
  1159. X    return True;
  1160. X}
  1161. X
  1162. X/*
  1163. X * Old OLWinAttr structure; used for compatability with existing
  1164. X * old clients; will convert into new structure.
  1165. X */
  1166. Xtypedef struct {
  1167. X    Atom        win_type;
  1168. X    Atom        menu_type;
  1169. X    unsigned long    pin_initial_state;
  1170. X} oldOLWinAttr;
  1171. X#define OLDOLWINATTRLENGTH (sizeof(oldOLWinAttr)/sizeof(unsigned long))
  1172. X
  1173. X/*
  1174. X * PropGetOLWinAttr
  1175. X */
  1176. XBool
  1177. XPropGetOLWinAttr(dpy,win,winAttr,oldVersion)
  1178. X    Display        *dpy;
  1179. X    Window        win;
  1180. X    OLWinAttr    *winAttr;        /* RETURN */
  1181. X    Bool        *oldVersion;
  1182. X{
  1183. X    void        *attrdata;
  1184. X    unsigned long    nItems,remain;
  1185. X
  1186. X    *oldVersion = False;
  1187. X
  1188. X    if (!PropAvailable(win,OLWinAttrAvail))
  1189. X        return False;
  1190. X
  1191. X    attrdata = GetWindowProperty(dpy,win,AtomWinAttr,0L,ENTIRE_CONTENTS,
  1192. X                     AtomWinAttr,0,&nItems,&remain);
  1193. X
  1194. X    /*
  1195. X     * If it's not there
  1196. X     */
  1197. X    if (attrdata == NULL)
  1198. X        return False;
  1199. X
  1200. X    /*
  1201. X     * It's either old or new size.  If old size then convert 
  1202. X     * it to new structure
  1203. X     */
  1204. X    if (nItems == OLDOLWINATTRLENGTH) {
  1205. X
  1206. X        *oldVersion = True;
  1207. X
  1208. X        winAttr->flags = WA_WINTYPE | WA_MENUTYPE | WA_PINSTATE;
  1209. X        winAttr->win_type = ((oldOLWinAttr *)attrdata)->win_type;
  1210. X        winAttr->menu_type = ((oldOLWinAttr *)attrdata)->menu_type;
  1211. X        winAttr->pin_initial_state =
  1212. X                ((oldOLWinAttr *)attrdata)->pin_initial_state;
  1213. X
  1214. X    } else if (nItems == OLWINATTRLENGTH) {     
  1215. X        *winAttr = *(OLWinAttr *)attrdata;
  1216. X    } else {    /* wrong size */
  1217. X        XFree((char *)attrdata);
  1218. X        return False;
  1219. X    }
  1220. X
  1221. X        /* 
  1222. X          * Convert the pushpin's initial state.
  1223. X          * 
  1224. X          * There's some backwards compatibility code here.
  1225. X          * Older clients use the _OL_PIN_IN and _OL_PIN_OUT atoms
  1226. X          * here, whereas the OLXCI specifies zero as out and one as
  1227. X          * in.  Convert old into new.
  1228. X          */
  1229. X        if (winAttr->flags & WA_PINSTATE) {
  1230. X        if (winAttr->pin_initial_state == AtomPinIn)
  1231. X            winAttr->pin_initial_state = PIN_IN;
  1232. X        else if (winAttr->pin_initial_state == AtomPinOut)
  1233. X            winAttr->pin_initial_state = PIN_OUT;
  1234. X    }
  1235. X
  1236. X    XFree((char *)attrdata);
  1237. X
  1238. X    return True;
  1239. X}
  1240. X
  1241. X/*
  1242. X * propGetOLDecor - gets either _OL_DECOR_ADD or _OL_DECOR_DEL list of
  1243. X *    decoration atoms and converts it into a set of flags.
  1244. X */
  1245. Xstatic Bool
  1246. XpropGetOLDecor(dpy,win,atom,decorFlags)
  1247. X    Display    *dpy;
  1248. X    Window    win;
  1249. X    Atom    atom;
  1250. X    int    *decorFlags;
  1251. X{
  1252. X    Atom    *atomList;
  1253. X    unsigned long nItems,remain;
  1254. X    int    i;
  1255. X
  1256. X    atomList = (Atom *)GetWindowProperty(dpy,win,atom,
  1257. X            0L,ENTIRE_CONTENTS,XA_ATOM,0,&nItems,&remain);
  1258. X
  1259. X    if (!atomList || nItems == 0) {
  1260. X        if (atomList)
  1261. X            XFree((char *)atomList);
  1262. X        return False;
  1263. X    }
  1264. X
  1265. X    *decorFlags = 0;
  1266. X
  1267. X    for (i = 0; i < nItems; i++) {
  1268. X        if (atomList[i] == AtomDecorClose)
  1269. X            *decorFlags |= WMDecorationCloseButton;
  1270. X        else if (atomList[i] == AtomDecorFooter)
  1271. X            *decorFlags |= WMDecorationFooter;
  1272. X        else if (atomList[i] == AtomDecorResize)
  1273. X            *decorFlags |= WMDecorationResizeable;
  1274. X        else if (atomList[i] == AtomDecorHeader)
  1275. X            *decorFlags |= WMDecorationHeader;
  1276. X        else if (atomList[i] == AtomDecorPin)
  1277. X            *decorFlags |= WMDecorationPushPin;
  1278. X        else if (atomList[i] == AtomDecorIconName)
  1279. X            *decorFlags |= WMDecorationIconName;
  1280. X    }
  1281. X
  1282. X    XFree((char *)atomList);
  1283. X
  1284. X    return True;
  1285. X}
  1286. X
  1287. X/*
  1288. X * PropGetOLDecorAdd - gets the _OL_DECOR_ADD property
  1289. X */
  1290. XBool
  1291. XPropGetOLDecorAdd(dpy,win,decorFlags)
  1292. X    Display    *dpy;
  1293. X    Window    win;
  1294. X    int    *decorFlags;
  1295. X{
  1296. X    if (!PropAvailable(win,OLDecorAddAvail))
  1297. X        return False;
  1298. X
  1299. X    if (!propGetOLDecor(dpy,win,AtomDecorAdd,decorFlags))
  1300. X        return False;
  1301. X
  1302. X    return True;
  1303. X}
  1304. X
  1305. X/*
  1306. X * PropGetOLDecorDel - gets the _OL_DECOR_DEL property
  1307. X */
  1308. XBool
  1309. XPropGetOLDecorDel(dpy,win,decorFlags)
  1310. X    Display    *dpy;
  1311. X    Window    win;
  1312. X    int    *decorFlags;
  1313. X{
  1314. X    if (!PropAvailable(win,OLDecorDelAvail))
  1315. X        return False;
  1316. X
  1317. X    if (!propGetOLDecor(dpy,win,AtomDecorDel,decorFlags))
  1318. X        return False;
  1319. X
  1320. X    return True;
  1321. X}
  1322. X
  1323. X/*
  1324. X * propGetOLFooter - get either left/right footer strings
  1325. X */
  1326. Xstatic Bool
  1327. XpropGetOLFooter(dpy,win,atom,footer)
  1328. X    Display    *dpy;
  1329. X    Window    win;
  1330. X    Atom    atom;
  1331. X    char    **footer;        /* RETURN */
  1332. X{
  1333. X    char    *value;
  1334. X    unsigned long nItems,remain;
  1335. X
  1336. X    value = (char *)GetWindowProperty(dpy,win,atom,
  1337. X            0L,ENTIRE_CONTENTS,XA_STRING,0,&nItems,&remain);
  1338. X
  1339. X    if (value == NULL)
  1340. X        return False;
  1341. X
  1342. X    *footer = MemNewString(value);
  1343. X
  1344. X    XFree(value);
  1345. X
  1346. X    return True;
  1347. X}
  1348. X
  1349. X/*
  1350. X * PropGetOLLeftFooter - gets the left footer string
  1351. X */
  1352. XBool
  1353. XPropGetOLLeftFooter(dpy,win,footer)
  1354. X    Display    *dpy;
  1355. X    Window    win;
  1356. X    char    **footer;
  1357. X{
  1358. X    if (!PropAvailable(win,OLLeftFooterAvail))
  1359. X        return False;
  1360. X
  1361. X    if (!propGetOLFooter(dpy,win,AtomLeftFooter,footer))
  1362. X        return False;
  1363. X
  1364. X    return True;
  1365. X}
  1366. X
  1367. X/*
  1368. X * PropGetOLRightFooter - gets the right footer string
  1369. X */
  1370. XBool
  1371. XPropGetOLRightFooter(dpy,win,footer)
  1372. X    Display    *dpy;
  1373. X    Window    win;
  1374. X    char    **footer;
  1375. X{
  1376. X    if (!PropAvailable(win,OLRightFooterAvail))
  1377. X        return False;
  1378. X
  1379. X    if (!propGetOLFooter(dpy,win,AtomRightFooter,footer))
  1380. X        return False;
  1381. X
  1382. X    return True;
  1383. X}
  1384. X
  1385. END_OF_FILE
  1386. if test 15731 -ne `wc -c <'properties.c'`; then
  1387.     echo shar: \"'properties.c'\" unpacked with wrong size!
  1388. fi
  1389. # end of 'properties.c'
  1390. fi
  1391. echo shar: End of archive 8 \(of 21\).
  1392. cp /dev/null ark8isdone
  1393. MISSING=""
  1394. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ; do
  1395.     if test ! -f ark${I}isdone ; then
  1396.     MISSING="${MISSING} ${I}"
  1397.     fi
  1398. done
  1399. if test "${MISSING}" = "" ; then
  1400.     echo You have unpacked all 21 archives.
  1401.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1402. else
  1403.     echo You still need to unpack the following archives:
  1404.     echo "        " ${MISSING}
  1405. fi
  1406. ##  End of shell archive.
  1407. exit 0
  1408. --
  1409. Molecular Simulations, Inc.             mail: dcmartin@postgres.berkeley.edu
  1410. 796 N. Pastoria Avenue                  uucp: uwvax!ucbvax!dcmartin
  1411. Sunnyvale, California 94086             at&t: 408/522-9236
  1412.